Masahiro Yamada, Thanks for the quick response.
I'm using Ubuntu 22.04 (Ubuntu 22.04 6.5.0-1017-azure), but it's needed for 
Ubuntu 24.04 as well. I would rather not back-port to a stable community since 
it may take longer. Is this the only way?

-- 
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to linux in Ubuntu.
https://bugs.launchpad.net/bugs/2093871

Title:
  Using sendpages_ok() in nvme_tcp_try_send_data()

Status in linux package in Ubuntu:
  New

Bug description:
  Can you please cherry-pick those 2 important commits from upstream?

  1. net: introduce helper sendpages_ok()
  (https://github.com/torvalds/linux/commit/23a55f44)

  Network drivers are using sendpage_ok() to check the first page of an
  iterator in order to disable MSG_SPLICE_PAGES. The iterator can
  represent list of contiguous pages.

  When MSG_SPLICE_PAGES is enabled skb_splice_from_iter() is being used,
  it requires all pages in the iterator to be sendable. Therefore it needs
  to check that each page is sendable.

  The patch introduces a helper sendpages_ok(), it returns true if all the
  contiguous pages are sendable.

  Drivers who want to send contiguous pages with MSG_SPLICE_PAGES may use
  this helper to check whether the page list is OK. If the helper does not
  return true, the driver should remove MSG_SPLICE_PAGES flag.

  
  2. nvme-tcp: use sendpages_ok() instead of sendpage_ok() 
(https://github.com/torvalds/linux/commit/6af7331a)

  Currently nvme_tcp_try_send_data() use sendpage_ok() in order to disable
  MSG_SPLICE_PAGES, it check the first page of the iterator, the iterator
  may represent contiguous pages.

  MSG_SPLICE_PAGES enables skb_splice_from_iter() which checks all the
  pages it sends with sendpage_ok().

  When nvme_tcp_try_send_data() sends an iterator that the first page is
  sendable, but one of the other pages isn't skb_splice_from_iter() warns
  and aborts the data transfer.

  Using the new helper sendpages_ok() in order to disable MSG_SPLICE_PAGES
  solves the issue.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/2093871/+subscriptions


-- 
Mailing list: https://launchpad.net/~kernel-packages
Post to     : kernel-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~kernel-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to