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 subscribed to linux
in Ubuntu.
Matching subscriptions: Bgg, Bmail, Nb
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
Комментариев нет:
Отправить комментарий