LINUX.ORG.RU

История изменений

Исправление qnikst, (текущая версия) :

насколько я помню в vmsplice есть вариант, передачи страницы, что-то там gift, хотя я оказывается плохо запомнил, это подарок ядру и не факт, что больше копирований не будет

SPLICE_F_GIFT The user pages are a gift to the kernel. The application may not modify this memory ever, otherwise the page
cache and on-disk data may differ. Gifting pages to the kernel means that a subsequent splice(2)
SPLICE_F_MOVE can successfully move the pages; if this flag is not specified, then a subsequent splice(2)
SPLICE_F_MOVE must copy the pages. Data must also be properly page aligned, both in memory and length.

SPLICE_F_MOVE Attempt to move pages instead of copying. This is only a hint to the kernel: pages may still be copied if
the kernel cannot move the pages from the pipe, or if the pipe buffers don't refer to full pages. The ini‐
tial implementation of this flag was buggy: therefore starting in Linux 2.6.21 it is a no-op (but is still
permitted in a splice() call); in the future, a correct implementation may be restored.

2.6.21 было давно, что там сейчас, кто знает?

остаётся вопрос, AF_DBUS это необходимый механизм для передачи страниц из одного адресного пространства в другое, и какие там ограничения вылезают?

Исходная версия qnikst, :

насколько я помню в vmsplice есть вариант, передачи страницы, что-то там gift, хотя я оказывается плохо запомнил, это подарок ядру и не факт, что больше копирований не будет

     SPLICE_F_GIFT      The user pages are a gift to the kernel.  The application may not modify this memory ever, otherwise the page
                          cache  and  on-disk  data  may  differ.   Gifting  pages  to  the  kernel  means  that a subsequent splice(2)
                          SPLICE_F_MOVE can successfully move the pages; if this flag is not specified,  then  a  subsequent  splice(2)
                          SPLICE_F_MOVE must copy the pages.  Data must also be properly page aligned, both in memory and length.


       SPLICE_F_MOVE      Attempt  to  move  pages instead of copying.  This is only a hint to the kernel: pages may still be copied if
                          the kernel cannot move the pages from the pipe, or if the pipe buffers don't refer to full pages.   The  ini‐
                          tial  implementation  of  this flag was buggy: therefore starting in Linux 2.6.21 it is a no-op (but is still
                          permitted in a splice() call); in the future, a correct implementation may be restored.

2.6.21 было давно, что там сейчас, кто знает?

остаётся вопрос, AF_DBUS это необходимый механизм для передачи страниц из одного адресного пространства в другое, и какие там ограничения вылезают?