xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
* Third version patches for upstreaming grant table version 2
@ 2011-11-21 12:17 annie li
  2011-11-22  1:58 ` [PATCH 1/4] xen/granttable: Introducing grant table V2 stucture annie.li
                   ` (3 more replies)
  0 siblings, 4 replies; 9+ messages in thread
From: annie li @ 2011-11-21 12:17 UTC (permalink / raw)
  To: xen-devel@lists.xensource.com, linux-kernel@vger.kernel.org,
	Konrad Rzeszutek Wilk, jeremy
  Cc: Paul Durrant, KURT HACKEL, ANNIE LI

Hi

The following patches introduce and implement grant table version 2. 
This is the third version patches, and based on v3.2.0-rc1+. Changes 
from the previous patches are following:

Patch 1:
* removing gnttab_v1_ops declaration
* renaming update_grant_entry_v1 to gnttab_update_entry_v1

Patch3:
* changing following code

xen_raw_printk();
panic();

back to

panic();
* re-arrange "else if" format in gnttab_request_version function.


Descriptions for those patches:

1. In those patches, the grant table code supports both grant table v1 and v2 version, v2 is an extension from v1. Grant table of guest domain can be either v1 or v2 version, and every grant table entry on one guest should be the same version. 

2. Full page structure of grant table v2 play the same role as grant table v1. Although full page structure is different from v1, grant table 2 is totally backwards compatible with v1. Grant table is shared between guest and Xen, domu and dom0 all have their own grant table shared with Xen, and their grant table version should be set before any grants are activated. When domu grants an entry to dom0 to map a frame,following are steps: 
* domu introduces a grant entry by reference 
* domu informs dom0 the gref 
* dom0 sends hypercall to map frame through this reference, Xen copy shared entry to active entry and update frame 
* dom0 does its work and release the frame, Xen releases the entry. 
* domu redo those steps for a new cycle. 
Xen mapping process can be found in function __gnttab_map_grant_ref in Xen code: xen/common/grant_table.c

3. If dom0 supports grant table v2, guests run on it can either supports v1 or v2. Xen is responsible to judge what  version the guests are using. This is implemented in Xen code: xen/common/grant_table.c. Key word is:  rd->grant_table->gt_version. 

4. Grant table v2 has been supported by Xen for a long time, and receiver-side copying mechanism bases on this implementation. Netback and netfront driver can pick up this new feature to get better network performance and better CPU accounting.


Diff:

 arch/x86/xen/grant-table.c          |   42 ++++-
 drivers/xen/grant-table.c           |  354 
++++++++++++++++++++++++++++++-----
 include/xen/grant_table.h           |   10 +-
 include/xen/interface/grant_table.h |  167 ++++++++++++++++-
 include/xen/interface/xen.h         |    2 +
 5 files changed, 519 insertions(+), 56 deletions(-)

Shortlog:
Annie Li (4):
      xen/granttable: Introducing grant table V2 stucture
      xen/granttable: Refactor some code
      xen/granttable: Grant tables V2 implementation
      xen/granttable: Keep code format clean

Thanks
Annie

^ permalink raw reply	[flat|nested] 9+ messages in thread
* Forth version patches for upstreaming grant table version 2
@ 2011-11-22 10:21 ANNIE LI
  2011-11-22 10:26 ` [PATCH 2/4] xen/granttable: Refactor some code annie.li
  0 siblings, 1 reply; 9+ messages in thread
From: ANNIE LI @ 2011-11-22 10:21 UTC (permalink / raw)
  To: xen-devel@lists.xensource.com, linux-kernel@vger.kernel.org,
	Konrad Rzeszutek Wilk, jeremy@goop.org, Ian Campbell
  Cc: Paul Durrant, Kurt Hackel, ANNIE LI

Hi

The following patches introduce and implement grant table version 2. 
This is the forth version patches, and based on v3.2.0-rc1+. Changes 
from the previous patches are following:

* Fix an indentation issue of the code.

Descriptions for those patches:

1. In those patches, the grant table code supports both grant table v1 
and v2 version, v2 is an extension from v1. Grant table of guest domain 
can be either v1 or v2 version, and every grant table entry on one guest 
should be the same version.
2. Full page structure of grant table v2 play the same role as grant 
table v1. Although full page structure is different from v1, grant table 
2 is totally backwards compatible with v1. Grant table is shared between 
guest and Xen, domu and dom0 all have their own grant table shared with 
Xen, and their grant table version should be set before any grants are 
activated. When domu grants an entry to dom0 to map a frame,following 
are steps: * domu introduces a grant entry by reference * domu informs 
dom0 the gref * dom0 sends hypercall to map frame through this 
reference, Xen copy shared entry to active entry and update frame * dom0 
does its work and release the frame, Xen releases the entry. * domu redo 
those steps for a new cycle. Xen mapping process can be found in 
function __gnttab_map_grant_ref in Xen code: xen/common/grant_table.c

3. If dom0 supports grant table v2, guests run on it can either supports 
v1 or v2. Xen is responsible to judge what  version the guests are 
using. This is implemented in Xen code: xen/common/grant_table.c. Key 
word is:  rd->grant_table->gt_version.
4. Grant table v2 has been supported by Xen for a long time, and 
receiver-side copying mechanism bases on this implementation. Netback 
and netfront driver can pick up this new feature to get better network 
performance and better CPU accounting.

Diff:

  arch/x86/xen/grant-table.c          |   42 ++++-
  drivers/xen/grant-table.c           |  354 
++++++++++++++++++++++++++++++-----
  include/xen/grant_table.h           |   10 +-
  include/xen/interface/grant_table.h |  167 ++++++++++++++++-
  include/xen/interface/xen.h         |    2 +
  5 files changed, 519 insertions(+), 56 deletions(-)

Shortlog:

Annie Li (4):
       xen/granttable: Introducing grant table V2 stucture
       xen/granttable: Refactor some code
       xen/granttable: Grant tables V2 implementation
       xen/granttable: Keep code format clean

Thanks
Annie

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2011-11-22 14:31 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-11-21 12:17 Third version patches for upstreaming grant table version 2 annie li
2011-11-22  1:58 ` [PATCH 1/4] xen/granttable: Introducing grant table V2 stucture annie.li
2011-11-22  1:58 ` [PATCH 2/4] xen/granttable: Refactor some code annie.li
2011-11-22  1:59 ` [PATCH 3/4] xen/granttable: Grant tables V2 implementation annie.li
2011-11-22  9:29   ` Ian Campbell
2011-11-22 10:02     ` ANNIE LI
2011-11-22 14:31       ` Konrad Rzeszutek Wilk
2011-11-22  1:59 ` [PATCH 4/4] xen/granttable: Keep code format clean annie.li
  -- strict thread matches above, loose matches on Subject: below --
2011-11-22 10:21 Forth version patches for upstreaming grant table version 2 ANNIE LI
2011-11-22 10:26 ` [PATCH 2/4] xen/granttable: Refactor some code annie.li

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).