To use sendpages_ok() in nvme_tcp_try_send_data(), check if the data can be sent as memory pages for efficient transmission. If sendpages_ok() returns true, send the data using sendpages(). If it returns false, use alternative methods like sendmsg() to send the data in smaller chunks. This approach improves performance, especially when transferring large amounts of data over NVMe/TCP.
-- 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