<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Re: vmsplice() + SPLICE_F_GIFT flag ??</title>
	<atom:link href="http://coder.cl/2009/08/re-vmsplice-splice_f_gift-flag/feed/" rel="self" type="application/rss+xml" />
	<link>http://coder.cl/2009/08/re-vmsplice-splice_f_gift-flag/</link>
	<description>web developer &#38; system programmer</description>
	<lastBuildDate>Sat, 04 Feb 2012 22:00:50 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>By: Daniel Molina Wegener</title>
		<link>http://coder.cl/2009/08/re-vmsplice-splice_f_gift-flag/comment-page-1/#comment-1455</link>
		<dc:creator>Daniel Molina Wegener</dc:creator>
		<pubDate>Fri, 12 Mar 2010 18:26:05 +0000</pubDate>
		<guid isPermaLink="false">http://coder.cl/?p=104#comment-1455</guid>
		<description>Thank you very much Carsten. I will communicate it to Eduardo.

Best Regards,
D</description>
		<content:encoded><![CDATA[<p>Thank you very much Carsten. I will communicate it to Eduardo.</p>
<p>Best Regards,<br />
D</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Carsten Milkau</title>
		<link>http://coder.cl/2009/08/re-vmsplice-splice_f_gift-flag/comment-page-1/#comment-1454</link>
		<dc:creator>Carsten Milkau</dc:creator>
		<pubDate>Fri, 12 Mar 2010 17:22:14 +0000</pubDate>
		<guid isPermaLink="false">http://coder.cl/?p=104#comment-1454</guid>
		<description>Note that for using SPLICE_F_GIFT, the chunks must be &lt;em&gt;page&lt;/em&gt; aligned, i. e. every chunk must be a contiguous block of full pages. Page size normally is 4 KiB (0x1000 in Hex). So, the following example is properly page aligned:

iovec[0]-&gt;io_base==0×080ed000, iovec[0]-&gt;io_len==0×1000,
iovec[1]-&gt;io_base==0×080ef000,
iovec[1]-&gt;io_len==0×2000,
iovec[2]-&gt;io_base==0×080f4000, iovec[2]-&gt;io_len==0×1000,

note that the chunks have different sizes, but all of them multiples of the page size (0x1000). Also, there is a 12 KiB gap between the second and the last chunk, but all chunks start at a page-aligned address (last three hexdigits are zero).

Compare instead the following example:

iovec[0]-&gt;io_base==0×080ed000, iovec[0]-&gt;io_len==0×400,
iovec[1]-&gt;io_base==0×080ed400,
iovec[1]-&gt;io_len==0×400,
iovec[2]-&gt;io_base==0×080fd800, iovec[2]-&gt;io_len==0×400,
iovec[2]-&gt;io_base==0×080fdc00, iovec[2]-&gt;io_len==0×400,

All four chunks from a contiguous range of 4 KiB, and each one is 1 KiB in length. Also, the first block is page-aligned, so that the four chunks together represent exactly one page in virtual memory. However, the &lt;em&gt;individual&lt;/em&gt; chunks are &lt;em&gt;not&lt;/em&gt; properly page-aligned: iovec[0] does not end on a page boundary, iovec[3] does not begin on a page boundary, and iovec[1] and iovec[2] do neither begin nor end on a page boundary.

&lt;b&gt;In short: every chunk must begin and end on a page boundary (hex address ending on 000).&lt;/b&gt;</description>
		<content:encoded><![CDATA[<p>Note that for using SPLICE_F_GIFT, the chunks must be <em>page</em> aligned, i. e. every chunk must be a contiguous block of full pages. Page size normally is 4 KiB (0&#215;1000 in Hex). So, the following example is properly page aligned:</p>
<p>iovec[0]-&gt;io_base==0×080ed000, iovec[0]-&gt;io_len==0×1000,<br />
iovec[1]-&gt;io_base==0×080ef000,<br />
iovec[1]-&gt;io_len==0×2000,<br />
iovec[2]-&gt;io_base==0×080f4000, iovec[2]-&gt;io_len==0×1000,</p>
<p>note that the chunks have different sizes, but all of them multiples of the page size (0&#215;1000). Also, there is a 12 KiB gap between the second and the last chunk, but all chunks start at a page-aligned address (last three hexdigits are zero).</p>
<p>Compare instead the following example:</p>
<p>iovec[0]-&gt;io_base==0×080ed000, iovec[0]-&gt;io_len==0×400,<br />
iovec[1]-&gt;io_base==0×080ed400,<br />
iovec[1]-&gt;io_len==0×400,<br />
iovec[2]-&gt;io_base==0×080fd800, iovec[2]-&gt;io_len==0×400,<br />
iovec[2]-&gt;io_base==0×080fdc00, iovec[2]-&gt;io_len==0×400,</p>
<p>All four chunks from a contiguous range of 4 KiB, and each one is 1 KiB in length. Also, the first block is page-aligned, so that the four chunks together represent exactly one page in virtual memory. However, the <em>individual</em> chunks are <em>not</em> properly page-aligned: iovec[0] does not end on a page boundary, iovec[3] does not begin on a page boundary, and iovec[1] and iovec[2] do neither begin nor end on a page boundary.</p>
<p><b>In short: every chunk must begin and end on a page boundary (hex address ending on 000).</b></p>
]]></content:encoded>
	</item>
</channel>
</rss>
<!-- This Quick Cache file was built for (  coder.cl/2009/08/re-vmsplice-splice_f_gift-flag/feed/ ) in 0.25973 seconds, on Feb 7th, 2012 at 4:55 am UTC. -->
<!-- This Quick Cache file will automatically expire ( and be re-built automatically ) on Feb 7th, 2012 at 5:55 am UTC -->
