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


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

Reply via email to