mbox series

[V2,0/2] mm: madvise: return correct bytes processed with process_madvise

Message ID cover.1647008754.git.quic_charante@quicinc.com (mailing list archive)
Headers show
Series mm: madvise: return correct bytes processed with process_madvise | expand

Message

Charan Teja Kalla March 11, 2022, 3:29 p.m. UTC
With the process_madvise(), always choose to return non zero processed
bytes over an error. This can help the user to know on which VMA, passed
in the 'struct iovec' vector list, is failed to advise thus can take the
decission of retrying/skipping on that VMA.

Changes in V2:
  -- Separated the fixes returning processed bytes in case of an error
     and ENOMEM handling of process_madvise() due to unmapped hole in
     the VMA, as per the Minchan comments.
  -- Improved the comment for ENOMEM handling case as per Amit comments.

Changes in V1:
  -- Fixed the return value of process_madvise().
  -- Fixed ENOMEM handling of process_madvise() from do_madvise()
  -- https://patchwork.kernel.org/project/linux-mm/patch/1646803679-11433-1-git-send-email-quic_charante@quicinc.com/

Charan Teja Kalla (2):
  mm: madvise: return correct bytes advised with process_madvise
  mm: madvise: skip unmapped vma holes passed to process_madvise

 mm/madvise.c | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

Comments

Andrew Morton March 11, 2022, 9:42 p.m. UTC | #1
On Fri, 11 Mar 2022 20:59:04 +0530 Charan Teja Kalla <quic_charante@quicinc.com> wrote:

> With the process_madvise(), always choose to return non zero processed
> bytes over an error. This can help the user to know on which VMA, passed
> in the 'struct iovec' vector list, is failed to advise thus can take the
> decission of retrying/skipping on that VMA.

Thanks, this is not good.

We should have added userspace tests for process_madvise() along with
the syscall itself.  But evidently that was omitted.  If someone
decides to contribute such tests, hopefully they will include checks
for these return values.
Charan Teja Kalla March 15, 2022, 2:26 p.m. UTC | #2
Thanks Andrew!!

On 3/12/2022 3:12 AM, Andrew Morton wrote:
>> With the process_madvise(), always choose to return non zero processed
>> bytes over an error. This can help the user to know on which VMA, passed
>> in the 'struct iovec' vector list, is failed to advise thus can take the
>> decission of retrying/skipping on that VMA.
> Thanks, this is not good.
> 
> We should have added userspace tests for process_madvise() along with
> the syscall itself.  But evidently that was omitted.  If someone
> decides to contribute such tests, hopefully they will include checks
> for these return values.

We are happy to contribute here.

>