* [cip-dev] Backport for LTS 4.4.129 for LTP fnctl35 tests
@ 2018-05-17 8:33 Daniel Sangorrin
2018-05-17 8:33 ` [cip-dev] [PATCH] pipe: cap initial pipe capacity according to pipe-max-size limit Daniel Sangorrin
2018-05-17 8:53 ` [cip-dev] Backport for LTS 4.4.129 for LTP fnctl35 tests Daniel Wagner
0 siblings, 2 replies; 5+ messages in thread
From: Daniel Sangorrin @ 2018-05-17 8:33 UTC (permalink / raw)
To: cip-dev
Dear Ben,
The other day I mentioned on the list[1] that after running LTP with
Fuego there were a few test cases failing that needed investigation.
I reviewed the first one (fcntl35 and fcntl35_64). According to the
comments on the LTP fcntl35.c file (by Xiao Yang <yangx.jy@cn.fujitsu.com>)
the bug tested by this test case was fixed by:
commit 086e774a57fba4695f14383c0818994c0b31da7c
Author: Michael Kerrisk (man-pages) <mtk.manpages@gmail.com>
Date: Tue Oct 11 13:53:43 2016 -0700
I backported that patch, see next e-mail:
[PATCH] pipe: cap initial pipe capacity according to pipe-max-size
I tested again and confirmed that the patch fixed the bug.
Before:
fcntl35.c:98: FAIL: an unprivileged user init the capacity of a pipe to 65536 unexpectedly, expected 4096
After:
fcntl35.c:101: PASS: an unprivileged user init the capacity of a pipe to 4096 successfully
If you think the patch is OK (as mentor) I can send it to the LTS mailing list myself.
Thanks,
Daniel Sangorrin
[1] https://lists.cip-project.org/pipermail/cip-dev/2018-May/001181.html
^ permalink raw reply [flat|nested] 5+ messages in thread
* [cip-dev] [PATCH] pipe: cap initial pipe capacity according to pipe-max-size limit
2018-05-17 8:33 [cip-dev] Backport for LTS 4.4.129 for LTP fnctl35 tests Daniel Sangorrin
@ 2018-05-17 8:33 ` Daniel Sangorrin
2018-05-17 8:53 ` [cip-dev] Backport for LTS 4.4.129 for LTP fnctl35 tests Daniel Wagner
1 sibling, 0 replies; 5+ messages in thread
From: Daniel Sangorrin @ 2018-05-17 8:33 UTC (permalink / raw)
To: cip-dev
From: "Michael Kerrisk (man-pages)" <mtk.manpages@gmail.com>
[ Upstream commit 086e774a57fba4695f14383c0818994c0b31da7c]
This is a patch that provides behavior that is more consistent, and
probably less surprising to users. I consider the change optional, and
welcome opinions about whether it should be applied.
By default, pipes are created with a capacity of 64 kiB. However,
/proc/sys/fs/pipe-max-size may be set smaller than this value. In this
scenario, an unprivileged user could thus create a pipe whose initial
capacity exceeds the limit. Therefore, it seems logical to cap the
initial pipe capacity according to the value of pipe-max-size.
The test program shown earlier in this patch series can be used to
demonstrate the effect of the change brought about with this patch:
# cat /proc/sys/fs/pipe-max-size
1048576
# sudo -u mtk ./test_F_SETPIPE_SZ 1
Initial pipe capacity: 65536
# echo 10000 > /proc/sys/fs/pipe-max-size
# cat /proc/sys/fs/pipe-max-size
16384
# sudo -u mtk ./test_F_SETPIPE_SZ 1
Initial pipe capacity: 16384
# ./test_F_SETPIPE_SZ 1
Initial pipe capacity: 65536
The last two executions of 'test_F_SETPIPE_SZ' show that pipe-max-size
caps the initial allocation for a new pipe for unprivileged users, but
not for privileged users.
Link: http://lkml.kernel.org/r/31dc7064-2a17-9c5b-1df1-4e3012ee992c at gmail.com
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
Reviewed-by: Vegard Nossum <vegard.nossum@oracle.com>
Cc: Willy Tarreau <w@1wt.eu>
Cc: <socketpair@gmail.com>
Cc: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Cc: Jens Axboe <axboe@fb.com>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Daniel Sangorrin <daniel.sangorrin@toshiba.co.jp>
(Backported from commit 086e774a57fba4695f14383c0818994c0b31da7c)
---
fs/pipe.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/fs/pipe.c b/fs/pipe.c
index 39eff9a..1e7263b 100644
--- a/fs/pipe.c
+++ b/fs/pipe.c
@@ -616,6 +616,9 @@ struct pipe_inode_info *alloc_pipe_info(void)
unsigned long pipe_bufs = PIPE_DEF_BUFFERS;
struct user_struct *user = get_current_user();
+ if (pipe_bufs * PAGE_SIZE > pipe_max_size && !capable(CAP_SYS_RESOURCE))
+ pipe_bufs = pipe_max_size >> PAGE_SHIFT;
+
if (!too_many_pipe_buffers_hard(user)) {
if (too_many_pipe_buffers_soft(user))
pipe_bufs = 1;
--
2.7.4
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [cip-dev] Backport for LTS 4.4.129 for LTP fnctl35 tests
2018-05-17 8:33 [cip-dev] Backport for LTS 4.4.129 for LTP fnctl35 tests Daniel Sangorrin
2018-05-17 8:33 ` [cip-dev] [PATCH] pipe: cap initial pipe capacity according to pipe-max-size limit Daniel Sangorrin
@ 2018-05-17 8:53 ` Daniel Wagner
2018-05-17 18:15 ` Ben Hutchings
1 sibling, 1 reply; 5+ messages in thread
From: Daniel Wagner @ 2018-05-17 8:53 UTC (permalink / raw)
To: cip-dev
Hi Daniel,
On 05/17/2018 10:33 AM, Daniel Sangorrin wrote:
> Dear Ben,
>
> The other day I mentioned on the list[1] that after running LTP with
> Fuego there were a few test cases failing that needed investigation.
>
> I reviewed the first one (fcntl35 and fcntl35_64). According to the
> comments on the LTP fcntl35.c file (by Xiao Yang <yangx.jy@cn.fujitsu.com>)
> the bug tested by this test case was fixed by:
> commit 086e774a57fba4695f14383c0818994c0b31da7c
> Author: Michael Kerrisk (man-pages) <mtk.manpages@gmail.com>
> Date: Tue Oct 11 13:53:43 2016 -0700
>
> I backported that patch, see next e-mail:
> [PATCH] pipe: cap initial pipe capacity according to pipe-max-size
>
> I tested again and confirmed that the patch fixed the bug.
>
> Before:
> fcntl35.c:98: FAIL: an unprivileged user init the capacity of a pipe to 65536 unexpectedly, expected 4096
> After:
> fcntl35.c:101: PASS: an unprivileged user init the capacity of a pipe to 4096 successfully
>
> If you think the patch is OK (as mentor) I can send it to the LTS mailing list myself.
Wouldn't it make sense to send it (also?) to Greg to include into the
stable trees?
Thanks,
Daniel
^ permalink raw reply [flat|nested] 5+ messages in thread
* [cip-dev] Backport for LTS 4.4.129 for LTP fnctl35 tests
2018-05-17 8:53 ` [cip-dev] Backport for LTS 4.4.129 for LTP fnctl35 tests Daniel Wagner
@ 2018-05-17 18:15 ` Ben Hutchings
2018-05-18 0:04 ` Daniel Sangorrin
0 siblings, 1 reply; 5+ messages in thread
From: Ben Hutchings @ 2018-05-17 18:15 UTC (permalink / raw)
To: cip-dev
On Thu, 2018-05-17 at 10:53 +0200, Daniel Wagner wrote:
> Hi Daniel,
>
> On 05/17/2018 10:33 AM, Daniel Sangorrin wrote:
> > Dear Ben,
> >
> > The other day I mentioned on the list[1] that after running LTP with
> > Fuego there were a few test cases failing that needed investigation.
> >
> > I reviewed the first one (fcntl35 and fcntl35_64). According to the
> > comments on the LTP fcntl35.c file (by Xiao Yang <yangx.jy@cn.fujitsu.com>)
> > the bug tested by this test case was fixed by:
> > ????commit 086e774a57fba4695f14383c0818994c0b31da7c
> > ????Author: Michael Kerrisk (man-pages) <mtk.manpages@gmail.com>
> > ????Date:???Tue Oct 11 13:53:43 2016 -0700
> >
> > I backported that patch, see next e-mail:
> > [PATCH] pipe: cap initial pipe capacity according to pipe-max-size
> >
> > I tested again and confirmed that the patch fixed the bug.
> >
> > Before:
> > fcntl35.c:98: FAIL: an unprivileged user init the capacity of a pipe to 65536 unexpectedly, expected 4096
> > After:
> > fcntl35.c:101: PASS: an unprivileged user init the capacity of a pipe to 4096 successfully
> >
> > If you think the patch is OK (as mentor) I can send it to the LTS mailing list myself.
>
> Wouldn't it make sense to send it (also?) to Greg to include into the
> stable trees?
I agree, this looks like suitable for stable.
Ben.
--
Ben Hutchings
Software Developer, Codethink Ltd.
^ permalink raw reply [flat|nested] 5+ messages in thread
* [cip-dev] Backport for LTS 4.4.129 for LTP fnctl35 tests
2018-05-17 18:15 ` Ben Hutchings
@ 2018-05-18 0:04 ` Daniel Sangorrin
0 siblings, 0 replies; 5+ messages in thread
From: Daniel Sangorrin @ 2018-05-18 0:04 UTC (permalink / raw)
To: cip-dev
Ben, Daniel:
> -----Original Message-----
> From: Ben Hutchings [mailto:ben.hutchings at codethink.co.uk]
> Sent: Friday, May 18, 2018 3:15 AM
> To: Daniel Wagner <daniel.wagner@siemens.com>; Daniel Sangorrin
> <daniel.sangorrin@toshiba.co.jp>; cip-dev at lists.cip-project.org
> Cc: fuego at lists.linuxfoundation.org
> Subject: Re: [cip-dev] Backport for LTS 4.4.129 for LTP fnctl35 tests
>
> On Thu, 2018-05-17 at 10:53 +0200, Daniel Wagner wrote:
> > Hi Daniel,
> >
> > On 05/17/2018 10:33 AM, Daniel Sangorrin wrote:
> > > Dear Ben,
> > >
> > > The other day I mentioned on the list[1] that after running LTP with
> > > Fuego there were a few test cases failing that needed investigation.
> > >
> > > I reviewed the first one (fcntl35 and fcntl35_64). According to the
> > > comments on the LTP fcntl35.c file (by Xiao Yang <yangx.jy@cn.fujitsu.com>)
> > > the bug tested by this test case was fixed by:
> > > commit 086e774a57fba4695f14383c0818994c0b31da7c
> > > Author: Michael Kerrisk (man-pages) <mtk.manpages@gmail.com>
> > > Date: Tue Oct 11 13:53:43 2016 -0700
> > >
> > > I backported that patch, see next e-mail:
> > > [PATCH] pipe: cap initial pipe capacity according to pipe-max-size
> > >
> > > I tested again and confirmed that the patch fixed the bug.
> > >
> > > Before:
> > > fcntl35.c:98: FAIL: an unprivileged user init the capacity of a pipe to 65536
> unexpectedly, expected 4096
> > > After:
> > > fcntl35.c:101: PASS: an unprivileged user init the capacity of a pipe to 4096
> successfully
> > >
> > > If you think the patch is OK (as mentor) I can send it to the LTS mailing list
> myself.
> >
> > Wouldn't it make sense to send it (also?) to Greg to include into the
> > stable trees?
>
> I agree, this looks like suitable for stable.
OK, I got confused by this e-mail.
https://lists.cip-project.org/pipermail/cip-dev/2018-April/001061.html
I will send the patch directly to the stable mailing list then.
Thanks,
Daniel
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2018-05-18 0:04 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-05-17 8:33 [cip-dev] Backport for LTS 4.4.129 for LTP fnctl35 tests Daniel Sangorrin
2018-05-17 8:33 ` [cip-dev] [PATCH] pipe: cap initial pipe capacity according to pipe-max-size limit Daniel Sangorrin
2018-05-17 8:53 ` [cip-dev] Backport for LTS 4.4.129 for LTP fnctl35 tests Daniel Wagner
2018-05-17 18:15 ` Ben Hutchings
2018-05-18 0:04 ` Daniel Sangorrin
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox