X-MimeOLE: Produced By Microsoft Exchange V6.5
Received: by onstor-exch02.onstor.net 
	id <01C781EC.B895B3C7@onstor-exch02.onstor.net>; Wed, 18 Apr 2007 12:06:51 -0700
MIME-Version: 1.0
Content-Type: multipart/alternative;
	boundary="----_=_NextPart_001_01C781EC.B895B3C7"
Content-class: urn:content-classes:message
Subject: FW: Cougar FC spec
Date: Wed, 18 Apr 2007 12:06:16 -0700
Message-ID: <BB375AF679D4A34E9CA8DFA650E2B04E02FB24F2@onstor-exch02.onstor.net>
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Thread-Topic: Cougar FC spec
Thread-Index: AceB6JAIpzU35LziQyC1ZcEnCzzMWAAAHpwnAAAlobAAAMDKfw==
References: <BB375AF679D4A34E9CA8DFA650E2B04E0351B726@onstor-exch02.onstor.net> <BB375AF679D4A34E9CA8DFA650E2B04E02FB24EF@onstor-exch02.onstor.net> <BB375AF679D4A34E9CA8DFA650E2B04E0351B74B@onstor-exch02.onstor.net>
From: "Bill Nadzam" <bill.nadzam@onstor.com>
To: "dl-Cougar" <dl-Cougar@onstor.com>

This is a multi-part message in MIME format.

------_=_NextPart_001_01C781EC.B895B3C7
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Forward to the group

________________________________

From: Maxim Kozlovsky
Sent: Wed 4/18/2007 11:54 AM
To: Bill Nadzam; Tim Gardner
Subject: RE: Cougar FC spec



FC (we should probably use different term to avoid the confusion with =
the FC as the piece of hardware, like SCSI code or something like that) =
should use the same memory pool that the rest of the code running on FP. =
There is no issue with running out of memory:

=20

1) During the writes, the buffer is pinned until the write complete.=20

=20

2) During the reads, the memory is "set aside" before the read request. =
We recycle a buffer before creating new buffer structure and starting a =
read operation.

=20

3) The SCSI code allocates additional memory per request. This memory =
should be preallocated to a certain limit and we need to make sure that =
EVM never schedules more requests than the SCSI limit.

=20

________________________________

From: Bill Nadzam=20
Sent: Wednesday, April 18, 2007 11:41 AM
To: Tim Gardner
Cc: Maxim Kozlovsky
Subject: RE: Cougar FC spec

=20

Well, that posses a question.

Why not use the eDesc that is built by the FP. I mean its in use, and =
must remain in use until the write is complete.

I do not see how the FC could change this...=20

=20

I am confused about read operations. I mean, are hte buffers already set =
aside before the read request is done?

=20

=20

=20

________________________________

From: Tim Gardner
Sent: Wed 4/18/2007 11:37 AM
To: Bill Nadzam
Subject: Cougar FC spec

Bill,

The spec needs to address memory management. Jonathan brought up a point =
about this.

Currently the FC has its own memory pool. We need to decide if we are =
going to use the existing

FP buffer/edesc pool or carve out a separate pool for the FC.

He raised the issue about the FC running the FP out of memory and =
causing a crash.

Since the latest FC design that was discussed does not use threads, you =
need to define the

locking strategy. Have to consider that your receive function may run =
concurrently on up

to 4 processors at once. Your polling function for inbound messages may =
also be run

concurrent with one or more receive functions.

Tim


------_=_NextPart_001_01C781EC.B895B3C7
Content-Type: text/html;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<HTML dir=3Dltr><HEAD><TITLE>Cougar FC spec</TITLE>=0A=
<META http-equiv=3DContent-Type content=3D"text/html; charset=3Dunicode">=0A=
<META content=3D"MSHTML 6.00.2900.2963" name=3DGENERATOR>=0A=
<STYLE>=0A=
<!--=0A=
                       =0A=
 font-face=0A=
	{font-family:Tahoma;}=0A=
                        =0A=
 p.MsoNormal, li.MsoNormal, div.MsoNormal=0A=
	{margin:0in;=0A=
	margin-bottom:.0001pt;=0A=
	font-size:12.0pt;=0A=
	font-family:"Times New Roman";}=0A=
a:link, span.MsoHyperlink=0A=
	{color:blue;=0A=
	text-decoration:underline;}=0A=
a:visited, span.MsoHyperlinkFollowed=0A=
	{color:purple;=0A=
	text-decoration:underline;}=0A=
p=0A=
	{=0A=
	margin-right:0in;=0A=
	margin-left:0in;=0A=
	font-size:12.0pt;=0A=
	font-family:"Times New Roman";}=0A=
span.EmailStyle18=0A=
	{=0A=
	font-family:Arial;=0A=
	color:navy;}=0A=
=0A=
div.Section1=0A=
	{page:Section1;}=0A=
-->=0A=
</STYLE>=0A=
</HEAD>=0A=
<BODY lang=3DEN-US vLink=3Dpurple link=3Dblue>=0A=
<DIV id=3DidOWAReplyText86826 dir=3Dltr>=0A=
<DIV dir=3Dltr><FONT face=3DArial color=3D#000000 size=3D2>Forward to =
the group</FONT></DIV></DIV>=0A=
<DIV dir=3Dltr><BR>=0A=
<HR tabIndex=3D-1>=0A=
<FONT face=3DTahoma size=3D2><B>From:</B> Maxim =
Kozlovsky<BR><B>Sent:</B> Wed 4/18/2007 11:54 AM<BR><B>To:</B> Bill =
Nadzam; Tim Gardner<BR><B>Subject:</B> RE: Cougar FC =
spec<BR></FONT><BR></DIV>=0A=
<DIV>=0A=
<DIV class=3DSection1>=0A=
<P class=3DMsoNormal><FONT face=3DArial color=3Dnavy size=3D2><SPAN =
style=3D"FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">FC (we should =
probably use different term to avoid the confusion with the FC as the =
piece of hardware, like SCSI code or something like that) should use the =
same memory pool that the rest of the code running on FP. There is no =
issue with running out of memory:</SPAN></FONT></P>=0A=
<P class=3DMsoNormal><FONT face=3DArial color=3Dnavy size=3D2><SPAN =
style=3D"FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: =
Arial"></SPAN></FONT>&nbsp;</P>=0A=
<P class=3DMsoNormal><FONT face=3DArial color=3Dnavy size=3D2><SPAN =
style=3D"FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">1) During the =
writes, the buffer is pinned until the write complete. </SPAN></FONT></P>=0A=
<P class=3DMsoNormal><FONT face=3DArial color=3Dnavy size=3D2><SPAN =
style=3D"FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: =
Arial"></SPAN></FONT>&nbsp;</P>=0A=
<P class=3DMsoNormal><FONT face=3DArial color=3Dnavy size=3D2><SPAN =
style=3D"FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">2) During the =
reads, the memory is &#8220;set aside&#8221; before the read request. We =
recycle a buffer before creating new buffer structure and starting a =
read operation.</SPAN></FONT></P>=0A=
<P class=3DMsoNormal><FONT face=3DArial color=3Dnavy size=3D2><SPAN =
style=3D"FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: =
Arial"></SPAN></FONT>&nbsp;</P>=0A=
<P class=3DMsoNormal><FONT face=3DArial color=3Dnavy size=3D2><SPAN =
style=3D"FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">3) The SCSI =
code allocates additional memory per request. This memory should be =
preallocated to a certain limit and we need to make sure that EVM never =
schedules more requests than the SCSI limit.</SPAN></FONT></P>=0A=
<P class=3DMsoNormal><FONT face=3DArial color=3Dnavy size=3D2><SPAN =
style=3D"FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: =
Arial"></SPAN></FONT>&nbsp;</P>=0A=
<DIV>=0A=
<DIV class=3DMsoNormal style=3D"TEXT-ALIGN: center" align=3Dcenter><FONT =
face=3D"Times New Roman" size=3D3><SPAN style=3D"FONT-SIZE: 12pt">=0A=
<HR tabIndex=3D-1 align=3Dcenter width=3D"100%" SIZE=3D2>=0A=
</SPAN></FONT></DIV>=0A=
<P class=3DMsoNormal><B><FONT face=3DTahoma size=3D2><SPAN =
style=3D"FONT-WEIGHT: bold; FONT-SIZE: 10pt; FONT-FAMILY: =
Tahoma">From:</SPAN></FONT></B><FONT face=3DTahoma size=3D2><SPAN =
style=3D"FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"> Bill Nadzam <BR><B><SPAN =
style=3D"FONT-WEIGHT: bold">Sent:</SPAN></B> Wednesday, April 18, 2007 =
11:41 AM<BR><B><SPAN style=3D"FONT-WEIGHT: bold">To:</SPAN></B> Tim =
Gardner<BR><B><SPAN style=3D"FONT-WEIGHT: bold">Cc:</SPAN></B> Maxim =
Kozlovsky<BR><B><SPAN style=3D"FONT-WEIGHT: bold">Subject:</SPAN></B> =
RE: Cougar FC spec</SPAN></FONT></P></DIV>=0A=
<P class=3DMsoNormal><FONT face=3D"Times New Roman" size=3D3><SPAN =
style=3D"FONT-SIZE: 12pt"></SPAN></FONT>&nbsp;</P>=0A=
<DIV id=3DidOWAReplyText29776>=0A=
<DIV>=0A=
<P class=3DMsoNormal><FONT face=3DArial color=3Dblack size=3D2><SPAN =
style=3D"FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial">Well, that =
posses a question.</SPAN></FONT></P></DIV>=0A=
<DIV>=0A=
<P class=3DMsoNormal><FONT face=3DArial size=3D2><SPAN =
style=3D"FONT-SIZE: 10pt; FONT-FAMILY: Arial">Why not use the eDesc that =
is built by the FP. I mean its in use, and must remain in use until the =
write is complete.</SPAN></FONT></P></DIV>=0A=
<DIV>=0A=
<P class=3DMsoNormal><FONT face=3DArial size=3D2><SPAN =
style=3D"FONT-SIZE: 10pt; FONT-FAMILY: Arial">I do not see how the FC =
could change this... </SPAN></FONT></P></DIV>=0A=
<DIV>=0A=
<P class=3DMsoNormal><FONT face=3D"Times New Roman" size=3D3><SPAN =
style=3D"FONT-SIZE: 12pt"></SPAN></FONT>&nbsp;</P></DIV>=0A=
<DIV>=0A=
<P class=3DMsoNormal><FONT face=3DArial size=3D2><SPAN =
style=3D"FONT-SIZE: 10pt; FONT-FAMILY: Arial">I am confused about read =
operations. I mean, are hte buffers already set aside before the read =
request is done?</SPAN></FONT></P></DIV>=0A=
<DIV>=0A=
<P class=3DMsoNormal><FONT face=3D"Times New Roman" size=3D3><SPAN =
style=3D"FONT-SIZE: 12pt"></SPAN></FONT>&nbsp;</P></DIV>=0A=
<DIV>=0A=
<P class=3DMsoNormal><FONT face=3D"Times New Roman" size=3D3><SPAN =
style=3D"FONT-SIZE: 12pt"></SPAN></FONT>&nbsp;</P></DIV></DIV>=0A=
<DIV>=0A=
<P class=3DMsoNormal><FONT face=3D"Times New Roman" size=3D3><SPAN =
style=3D"FONT-SIZE: 12pt"></SPAN></FONT>&nbsp;</P>=0A=
<DIV class=3DMsoNormal style=3D"TEXT-ALIGN: center" align=3Dcenter><FONT =
face=3D"Times New Roman" size=3D3><SPAN style=3D"FONT-SIZE: 12pt">=0A=
<HR tabIndex=3D-1 align=3Dcenter width=3D"100%" SIZE=3D2>=0A=
</SPAN></FONT></DIV>=0A=
<P class=3DMsoNormal style=3D"MARGIN-BOTTOM: 12pt"><B><FONT =
face=3DTahoma size=3D2><SPAN style=3D"FONT-WEIGHT: bold; FONT-SIZE: =
10pt; FONT-FAMILY: Tahoma">From:</SPAN></FONT></B><FONT face=3DTahoma =
size=3D2><SPAN style=3D"FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"> Tim =
Gardner<BR><B><SPAN style=3D"FONT-WEIGHT: bold">Sent:</SPAN></B> Wed =
4/18/2007 11:37 AM<BR><B><SPAN style=3D"FONT-WEIGHT: =
bold">To:</SPAN></B> Bill Nadzam<BR><B><SPAN style=3D"FONT-WEIGHT: =
bold">Subject:</SPAN></B> Cougar FC spec</SPAN></FONT></P></DIV>=0A=
<DIV>=0A=
<P><FONT face=3DArial size=3D2><SPAN style=3D"FONT-SIZE: 10pt; =
FONT-FAMILY: Arial">Bill,</SPAN></FONT></P>=0A=
<P><FONT face=3DArial size=3D2><SPAN style=3D"FONT-SIZE: 10pt; =
FONT-FAMILY: Arial">The spec needs to address memory management. =
Jonathan brought up a point about this.</SPAN></FONT></P>=0A=
<P><FONT face=3DArial size=3D2><SPAN style=3D"FONT-SIZE: 10pt; =
FONT-FAMILY: Arial">Currently the FC has its own memory pool. We need to =
decide if we are going to use the existing</SPAN></FONT></P>=0A=
<P><FONT face=3DArial size=3D2><SPAN style=3D"FONT-SIZE: 10pt; =
FONT-FAMILY: Arial">FP buffer/edesc pool or carve out a separate pool =
for the FC.</SPAN></FONT></P>=0A=
<P><FONT face=3DArial size=3D2><SPAN style=3D"FONT-SIZE: 10pt; =
FONT-FAMILY: Arial">He raised the issue about the FC running the FP out =
of memory and causing a crash.</SPAN></FONT></P>=0A=
<P><FONT face=3DArial size=3D2><SPAN style=3D"FONT-SIZE: 10pt; =
FONT-FAMILY: Arial">Since the latest FC design that was discussed does =
not use threads, you need to define the</SPAN></FONT></P>=0A=
<P><FONT face=3DArial size=3D2><SPAN style=3D"FONT-SIZE: 10pt; =
FONT-FAMILY: Arial">locking strategy. Have to consider that your receive =
function may run concurrently on up</SPAN></FONT></P>=0A=
<P><FONT face=3DArial size=3D2><SPAN style=3D"FONT-SIZE: 10pt; =
FONT-FAMILY: Arial">to 4 processors at once. Your polling function for =
inbound messages may also be run</SPAN></FONT></P>=0A=
<P><FONT face=3DArial size=3D2><SPAN style=3D"FONT-SIZE: 10pt; =
FONT-FAMILY: Arial">concurrent with one or more</SPAN></FONT> <FONT =
face=3DArial size=3D2><SPAN style=3D"FONT-SIZE: 10pt; FONT-FAMILY: =
Arial">receive functions.</SPAN></FONT></P>=0A=
<P><FONT face=3DArial size=3D2><SPAN style=3D"FONT-SIZE: 10pt; =
FONT-FAMILY: Arial">Tim</SPAN></FONT></P></DIV></DIV></DIV></BODY></HTML>
------_=_NextPart_001_01C781EC.B895B3C7--
