All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCHv2 0/3] grant-table: optimize grant copies when crossing page boundaries
@ 2015-01-20 18:19 David Vrabel
  2015-01-20 18:19 ` [PATCH 1/3] grant-table: use uint16_t consistently for grant copy offset and length David Vrabel
                   ` (2 more replies)
  0 siblings, 3 replies; 14+ messages in thread
From: David Vrabel @ 2015-01-20 18:19 UTC (permalink / raw)
  To: xen-devel
  Cc: Keir Fraser, Tim Deegan, David Vrabel, Jan Beulich, Ian Campbell

Netback tries (where possible) to minimize the number of copy ops in
the to-guest direction (since acquiring a page is expensive) this
reduces the number acquire operations at the expensive of more Rx
slots and more frags in the guests.

By deferring the release of the pages we can optimize the case where
the grant copier splits a copy into two operations to cross a page
boundary (either to split a source GFN into two granted pages, or a
two source into the same granted page).

Changes in v2:
- Split refactor into separate patch.
- Use in struct grant_copy_ptr in struct grant_copy_buf.
- Various style fixes.

David

^ permalink raw reply	[flat|nested] 14+ messages in thread
* [PATCHv3 0/3] grant-table: optimize grant copies when crossing page boundaries
@ 2015-01-23 10:43 David Vrabel
  2015-01-23 10:43 ` [PATCH 1/3] grant-table: use uint16_t consistently for grant copy offset and length David Vrabel
  0 siblings, 1 reply; 14+ messages in thread
From: David Vrabel @ 2015-01-23 10:43 UTC (permalink / raw)
  To: xen-devel
  Cc: Keir Fraser, Tim Deegan, David Vrabel, Jan Beulich, Ian Campbell

Netback tries (where possible) to minimize the number of copy ops in
the to-guest direction (since acquiring a page is expensive) this
reduces the number acquire operations at the expensive of more Rx
slots and more frags in the guests.

By deferring the release of the pages we can optimize the case where
the grant copier splits a copy into two operations to cross a page
boundary (either to split a source GFN into two granted pages, or a
two source into the same granted page).

This then allows netback to coalesce to-guest packets with minimal
extra cost, reducing the number of slots needed and improving
performance.

Changes in v3:
- Fix regressions:
  - Get writable frame if required so shared pages are unshared.
  - Mark destination as dirty.
- s16 -> int.
- gnttab_copy_lock_domains() always unlocks on error.
- Use is_gref parameter in gnttab_copy_buf_valid().

Changes in v2:
- Split refactor into separate patch.
- Use in struct grant_copy_ptr in struct grant_copy_buf.
- Various style fixes.

David

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

end of thread, other threads:[~2015-01-23 10:55 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-01-20 18:19 [PATCHv2 0/3] grant-table: optimize grant copies when crossing page boundaries David Vrabel
2015-01-20 18:19 ` [PATCH 1/3] grant-table: use uint16_t consistently for grant copy offset and length David Vrabel
2015-01-22 14:24   ` Jan Beulich
2015-01-20 18:19 ` [PATCH 2/3] grant-table: refactor grant copy to reduce duplicate code David Vrabel
2015-01-22 14:24   ` Jan Beulich
2015-01-22 14:42     ` David Vrabel
2015-01-22 16:04       ` Jan Beulich
2015-01-22 16:28   ` Tim Deegan
2015-01-20 18:19 ` [PATCH 3/3] grant-table: defer releasing pages acquired in a grant copy David Vrabel
2015-01-22 14:34   ` Jan Beulich
2015-01-22 14:39     ` David Vrabel
2015-01-22 16:01       ` Jan Beulich
2015-01-22 16:33   ` Tim Deegan
2015-01-23 10:43 [PATCHv3 0/3] grant-table: optimize grant copies when crossing page boundaries David Vrabel
2015-01-23 10:43 ` [PATCH 1/3] grant-table: use uint16_t consistently for grant copy offset and length David Vrabel

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.