xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/2] Refactor ioreq server for better performance.
@ 2015-07-06  6:25 Yu Zhang
  2015-07-06  6:25 ` [PATCH v2 1/2] Resize the MAX_NR_IO_RANGES for ioreq server Yu Zhang
  2015-07-06  6:25 ` [PATCH v2 2/2] Add new data structure to track ranges Yu Zhang
  0 siblings, 2 replies; 24+ messages in thread
From: Yu Zhang @ 2015-07-06  6:25 UTC (permalink / raw)
  To: xen-devel, keir, JBeulich, andrew.cooper3, Paul.Durrant
  Cc: kevin.tian, zhiyuan.lv

XenGT leverages ioreq server to track and forward the accesses to
GPU I/O resources, e.g. the PPGTT(per-process graphic translation
tables). Currently, ioreq server uses rangeset to track the BDF/
PIO/MMIO ranges to be emulated. To select an ioreq server, the
rangeset is searched to see if the I/O range is recorded. However,
traversing the link list inside rangeset could be time consuming
when number of ranges is too high. On HSW platform, number of PPGTTs
for each vGPU could be several hundred. On BDW, this value could
be several thousand.

To accommodate more ranges, limitation of the number of ranges in an
ioreq server, MAX_NR_IO_RANGES is changed - future patches will be
provided to tune this with other approaches. And to increase the ioreq
server performance, a new data structure, rb_rangeset, is introduced.

Changes in v2:
1> Split the original patch into 2;
2> Take Paul Durrant's comments:
  a> Add a name member in the struct rb_rangeset, and use the 'q'
debug key to dump the ranges in ioreq server;
  b> Keep original routine names for hvm ioreq server;
  c> Commit message changes - mention that a future patch to change
the maximum ranges inside ioreq server.

Yu Zhang (2):
  Resize the MAX_NR_IO_RANGES for ioreq server
  Add new data structure to track ranges.

 xen/arch/x86/domain.c            |   3 +
 xen/arch/x86/hvm/hvm.c           |  56 ++++++--
 xen/common/Makefile              |   1 +
 xen/common/rb_rangeset.c         | 281 +++++++++++++++++++++++++++++++++++++++
 xen/include/asm-x86/hvm/domain.h |   4 +-
 xen/include/asm-x86/hvm/hvm.h    |   1 +
 xen/include/xen/rb_rangeset.h    |  49 +++++++
 7 files changed, 379 insertions(+), 16 deletions(-)
 create mode 100644 xen/common/rb_rangeset.c
 create mode 100644 xen/include/xen/rb_rangeset.h

-- 
1.9.1

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

end of thread, other threads:[~2015-07-07 16:02 UTC | newest]

Thread overview: 24+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-07-06  6:25 [PATCH v2 0/2] Refactor ioreq server for better performance Yu Zhang
2015-07-06  6:25 ` [PATCH v2 1/2] Resize the MAX_NR_IO_RANGES for ioreq server Yu Zhang
2015-07-06 12:35   ` George Dunlap
2015-07-06 12:38     ` Paul Durrant
2015-07-06 12:49       ` George Dunlap
2015-07-06 13:09         ` Paul Durrant
2015-07-06 13:23           ` George Dunlap
2015-07-06 13:28           ` George Dunlap
2015-07-06 13:33             ` Paul Durrant
2015-07-06 14:06               ` George Dunlap
2015-07-07  8:16                 ` Yu, Zhang
2015-07-07  9:23                   ` Paul Durrant
2015-07-07 12:53                     ` Jan Beulich
2015-07-07 13:11                       ` Paul Durrant
2015-07-07 14:04                         ` Jan Beulich
2015-07-07 14:30                           ` Yu, Zhang
2015-07-07 14:43                             ` Jan Beulich
2015-07-07 14:49                               ` Yu, Zhang
2015-07-07 15:10                                 ` Jan Beulich
2015-07-07 16:02                                   ` Yu, Zhang
2015-07-07 15:12                           ` Paul Durrant
2015-07-07 15:27                             ` Jan Beulich
2015-07-07 15:29                               ` Paul Durrant
2015-07-06  6:25 ` [PATCH v2 2/2] Add new data structure to track ranges Yu Zhang

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).