All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jens Axboe <jaxboe@fusionio.com>
To: "mtk.manpages@gmail.com" <mtk.manpages@gmail.com>
Cc: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>,
	Andrew Morton <akpm@linux-foundation.org>,
	Linus Torvalds <torvalds@linux-foundation.org>,
	Miklos Szeredi <miklos@szeredi.hu>,
	"linux-fsdevel@vger.kernel.org" <linux-fsdevel@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [patch] pipe: add support for shrinking and growing pipes
Date: Thu, 3 Jun 2010 09:01:26 +0200	[thread overview]
Message-ID: <20100603070126.GJ3564@kernel.dk> (raw)
In-Reply-To: <AANLkTint7OJvmTn7d7bqTJzsCxV-VlVT46PQWVH-m73g@mail.gmail.com>

On Thu, Jun 03 2010, Michael Kerrisk wrote:
> Hi Jens,
> 
> On Thu, Jun 3, 2010 at 8:10 AM, Jens Axboe <jaxboe@fusionio.com> wrote:
> > On Wed, Jun 02 2010, Michael Kerrisk wrote:
> >> On Tue, Jun 1, 2010 at 9:45 AM, Jens Axboe <axboe@kernel.dk> wrote:
> >> > On Thu, May 27 2010, Michael Kerrisk wrote:
> >> >> Jens,
> >> >>
> >> >> On Mon, May 24, 2010 at 7:56 PM, Jens Axboe <jens.axboe@oracle.com> wrote:
> >> >> > On Mon, May 24 2010, Michael Kerrisk wrote:
> >> >> >> On Mon, May 24, 2010 at 7:35 PM, Jens Axboe <jens.axboe@oracle.com> wrote:
> >> >> >> > On Mon, May 24 2010, Michael Kerrisk wrote:
> >> >> >> >> > Right, that looks like a thinko.
> >> >> >> >> >
> >> >> >> >> > I'll submit a patch changing it to bytes and the agreed API and fix this
> >> >> >> >> > -Eerror. Thanks for your comments and suggestions!
> >> >> >> >>
> >> >> >> >> Thanks. And of course you are welcome. (Please CC linux-api@vger on
> >> >> >> >> this patche (and all patches that change the API/ABI.)
> >> >> >> >
> >> >> >> > The first change is this:
> >> >> >> >
> >> >> >> > http://git.kernel.dk/?p=linux-2.6-block.git;a=commit;h=0191f8697bbdfefcd36e7b8dc3eeddfe82893e4b
> >> >> >> >
> >> >> >> > and the one dealing with the pages vs bytes API is this:
> >> >> >> >
> >> >> >> > http://git.kernel.dk/?p=linux-2.6-block.git;a=commit;h=b9598db3401282bb27b4aef77e3eee12015f7f29
> >> >> >> >
> >> >> >> > Not tested yet, will do so before sending in of course.
> >> >> >>
> >> >> >> Eyeballing it quickly, these changes look right.
> >> >> >
> >> >> > Good, thanks.
> >> >> >
> >> >> >> Do you have some test programs you can make available?
> >> >> >
> >> >> > Actually I don't, I test it by modifying fio's splice engine to set/get
> >> >> > the pipe size and test the resulting transfers.
> >> >>
> >> >> An afterthought. Do there not also need to be fixes to the /proc
> >> >> interfaces. I don't think they were included in your revised patches.
> >> >
> >> > I think the proc part can be sanely left in pages, since it's just a
> >> > memory limiter.
> >>
> >> I can't see any advantage to using two different units for these
> >> closely related APIs, and it does seem like it could be a source of
> >> confusion. Similar APIs that I can think of like RLIMIT_MEMLOCK and
> >> shmget() SHMMAX that impose per-process memory-related limits use
> >> bytes. Best to be consistent, don't you think?
> >
> > But they are different interfaces.  I think the 'pass in required size,
> > return actual size' where actual size is >= required size makes sense
> > for the syscall part, but for an "admin" interface it is more logical to
> > deal in pages. Perhaps that's just me and the average admin does not
> > agree. So while it's just detail, it's also an interface so has some
> > importance. And if there's consensus that bytes is a cleaner interface
> > on the proc side as well, then lets change it.
> 
> I'll add one more datapoint to those that I already mentioned.
> RLIMIT_STACK and RLIMIT_DATA (getrlimit()) is also expressed in bytes.
> 
> There was only one vaguely related limit that I could find that
> measured things in pages. Consider these two System V shared memory
> limits:
> 
> SHMMAX
> This is the maximum size (in bytes) of a shared memory segment.
> 
> SHMALL
> This is a system-wide limit on the total number of pages of shared memory.
> 
> But in a way this almost confirms my point. SHMMAX is a limit the
> governs the behavior of individual processes (like your /proc file),
> while SHMALL is a limit that governs the behavior of the system as a
> whole. There is a (sort of) logic to using bytes for one and pages for
> the other.
> 
> I think that I've said all I need to say on the topic. I'm inclined to
> think yours /proc file should use bytes, since it seems consistent
> with other simialr APIs. Others may confirm, or someone else mught
> have a different insight.

I'll commit a patch to change it to bytes.

> PS I hope you are going to set the lower limit for the /proc file to
> 4096B (a page) (?).

Yes, I think I'll do that as a separate patch up front.

-- 
Jens Axboe


WARNING: multiple messages have this Message-ID (diff)
From: Jens Axboe <jaxboe@fusionio.com>
To: "mtk.manpages@gmail.com" <mtk.manpages@gmail.com>
Cc: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>,
	Andrew Morton <akpm@linux-foundation.org>,
	Linus Torvalds <torvalds@linux-foundation.org>,
	Miklos Szeredi <miklos@szeredi.hu>,
	"linux-fsdevel@vger.kernel.org" <linux-fsdevel@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [patch] pipe: add support for shrinking and growing pipes
Date: Thu, 3 Jun 2010 09:01:26 +0200	[thread overview]
Message-ID: <20100603070126.GJ3564@kernel.dk> (raw)
In-Reply-To: <AANLkTint7OJvmTn7d7bqTJzsCxV-VlVT46PQWVH-m73g@mail.gmail.com>

On Thu, Jun 03 2010, Michael Kerrisk wrote:
> Hi Jens,
> 
> On Thu, Jun 3, 2010 at 8:10 AM, Jens Axboe <jaxboe@fusionio.com> wrote:
> > On Wed, Jun 02 2010, Michael Kerrisk wrote:
> >> On Tue, Jun 1, 2010 at 9:45 AM, Jens Axboe <axboe@kernel.dk> wrote:
> >> > On Thu, May 27 2010, Michael Kerrisk wrote:
> >> >> Jens,
> >> >>
> >> >> On Mon, May 24, 2010 at 7:56 PM, Jens Axboe <jens.axboe@oracle.com> wrote:
> >> >> > On Mon, May 24 2010, Michael Kerrisk wrote:
> >> >> >> On Mon, May 24, 2010 at 7:35 PM, Jens Axboe <jens.axboe@oracle.com> wrote:
> >> >> >> > On Mon, May 24 2010, Michael Kerrisk wrote:
> >> >> >> >> > Right, that looks like a thinko.
> >> >> >> >> >
> >> >> >> >> > I'll submit a patch changing it to bytes and the agreed API and fix this
> >> >> >> >> > -Eerror. Thanks for your comments and suggestions!
> >> >> >> >>
> >> >> >> >> Thanks. And of course you are welcome. (Please CC linux-api@vger on
> >> >> >> >> this patche (and all patches that change the API/ABI.)
> >> >> >> >
> >> >> >> > The first change is this:
> >> >> >> >
> >> >> >> > http://git.kernel.dk/?p=linux-2.6-block.git;a=commit;h=0191f8697bbdfefcd36e7b8dc3eeddfe82893e4b
> >> >> >> >
> >> >> >> > and the one dealing with the pages vs bytes API is this:
> >> >> >> >
> >> >> >> > http://git.kernel.dk/?p=linux-2.6-block.git;a=commit;h=b9598db3401282bb27b4aef77e3eee12015f7f29
> >> >> >> >
> >> >> >> > Not tested yet, will do so before sending in of course.
> >> >> >>
> >> >> >> Eyeballing it quickly, these changes look right.
> >> >> >
> >> >> > Good, thanks.
> >> >> >
> >> >> >> Do you have some test programs you can make available?
> >> >> >
> >> >> > Actually I don't, I test it by modifying fio's splice engine to set/get
> >> >> > the pipe size and test the resulting transfers.
> >> >>
> >> >> An afterthought. Do there not also need to be fixes to the /proc
> >> >> interfaces. I don't think they were included in your revised patches.
> >> >
> >> > I think the proc part can be sanely left in pages, since it's just a
> >> > memory limiter.
> >>
> >> I can't see any advantage to using two different units for these
> >> closely related APIs, and it does seem like it could be a source of
> >> confusion. Similar APIs that I can think of like RLIMIT_MEMLOCK and
> >> shmget() SHMMAX that impose per-process memory-related limits use
> >> bytes. Best to be consistent, don't you think?
> >
> > But they are different interfaces.  I think the 'pass in required size,
> > return actual size' where actual size is >= required size makes sense
> > for the syscall part, but for an "admin" interface it is more logical to
> > deal in pages. Perhaps that's just me and the average admin does not
> > agree. So while it's just detail, it's also an interface so has some
> > importance. And if there's consensus that bytes is a cleaner interface
> > on the proc side as well, then lets change it.
> 
> I'll add one more datapoint to those that I already mentioned.
> RLIMIT_STACK and RLIMIT_DATA (getrlimit()) is also expressed in bytes.
> 
> There was only one vaguely related limit that I could find that
> measured things in pages. Consider these two System V shared memory
> limits:
> 
> SHMMAX
> This is the maximum size (in bytes) of a shared memory segment.
> 
> SHMALL
> This is a system-wide limit on the total number of pages of shared memory.
> 
> But in a way this almost confirms my point. SHMMAX is a limit the
> governs the behavior of individual processes (like your /proc file),
> while SHMALL is a limit that governs the behavior of the system as a
> whole. There is a (sort of) logic to using bytes for one and pages for
> the other.
> 
> I think that I've said all I need to say on the topic. I'm inclined to
> think yours /proc file should use bytes, since it seems consistent
> with other simialr APIs. Others may confirm, or someone else mught
> have a different insight.

I'll commit a patch to change it to bytes.

> PS I hope you are going to set the lower limit for the /proc file to
> 4096B (a page) (?).

Yes, I think I'll do that as a separate patch up front.

-- 
Jens Axboe

--
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

  reply	other threads:[~2010-06-03  7:01 UTC|newest]

Thread overview: 64+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-05-19 16:45 [patch] pipe: add support for shrinking and growing pipes Miklos Szeredi
2010-05-19 16:49 ` Linus Torvalds
2010-05-19 18:05   ` Jens Axboe
2010-05-19 19:05     ` Jens Axboe
2010-05-20  8:33       ` Miklos Szeredi
2010-05-20  8:37         ` Jens Axboe
2010-05-20 17:42           ` Linus Torvalds
2010-05-20 17:48             ` Jens Axboe
2010-05-21 17:13               ` Rick Sherm
2010-05-23  5:30   ` Michael Kerrisk
2010-05-23  2:38     ` Andrew Morton
2010-05-23  5:52       ` Michael Kerrisk
2010-05-23  7:09         ` Jens Axboe
2010-05-23  9:24           ` Michael Kerrisk
2010-05-23 17:47             ` Jens Axboe
2010-05-24  1:43               ` OGAWA Hirofumi
2010-05-24  4:43                 ` Michael Kerrisk
2010-05-24  4:43                   ` Michael Kerrisk
2010-05-24  7:05                   ` Jens Axboe
2010-05-24  7:27                     ` Michael Kerrisk
2010-05-24  7:27                       ` Michael Kerrisk
2010-05-24 17:35                       ` Jens Axboe
2010-05-24 17:52                         ` Michael Kerrisk
2010-05-24 17:56                           ` Jens Axboe
2010-05-25  4:01                             ` Michael Kerrisk
2010-06-01  7:48                               ` Jens Axboe
2010-06-01 15:22                                 ` Linus Torvalds
2010-06-01 16:36                                   ` Loke, Chetan
2010-05-27  6:49                             ` Michael Kerrisk
2010-06-01  7:45                               ` Jens Axboe
2010-06-02 19:25                                 ` Michael Kerrisk
2010-06-03  6:10                                   ` Jens Axboe
2010-06-03  6:46                                     ` Michael Kerrisk
2010-06-03  7:01                                       ` Jens Axboe [this message]
2010-06-03  7:01                                         ` Jens Axboe
2010-06-03  7:05                                         ` Michael Kerrisk
2010-06-03  7:05                                           ` Michael Kerrisk
2010-06-03  7:48                                           ` Michael Kerrisk
2010-06-03  7:48                                             ` Michael Kerrisk
2010-06-03  7:58                                             ` Michael Kerrisk
2010-06-03  7:58                                               ` Michael Kerrisk
2010-06-03  8:29                                               ` Michael Kerrisk
2010-06-03  8:53                                                 ` Michael Kerrisk
     [not found]                                               ` <4C07862D.4090709@fusionio.com>
     [not found]                                                 ` <AANLkTincO5thcP-yASUtIV41TtY3ZmG9YSU-J5nT2sFg@mail.gmail.com>
2010-06-03 11:11                                                   ` Jens Axboe
     [not found]                                             ` <4C078610.6020901@fusionio.com>
     [not found]                                               ` <AANLkTinhO5oRDPXyXaeAOZU3i55eBKsx4iFMOzwm98na@mail.gmail.com>
     [not found]                                                 ` <AANLkTin_8MU3AbJ_KeXr2uTxtRFJ5ABmBAyigU6m-C6u@mail.gmail.com>
2010-06-03 11:12                                                   ` Jens Axboe
2010-06-03 11:32                                                     ` Miklos Szeredi
2010-06-03 11:37                                                       ` Jens Axboe
2010-06-03 12:45                                                         ` Miklos Szeredi
2010-06-03 12:50                                                           ` Jens Axboe
2010-06-19  5:45                                                             ` Michael Kerrisk
2010-06-19 18:13                                                               ` Jens Axboe
2010-06-20  5:37                                                                 ` Michael Kerrisk
2010-06-03 16:06                                                         ` Miklos Szeredi
2010-05-24  7:04                 ` Jens Axboe
2010-05-24  7:28                   ` Michael Kerrisk
2010-05-24  7:28                     ` Michael Kerrisk
2010-05-24  7:49                     ` OGAWA Hirofumi
2010-05-24 14:51                     ` Brian Bloniarz
2010-05-24 15:43                       ` Michael Kerrisk
2010-05-24  7:46                   ` OGAWA Hirofumi
2010-05-24 17:15                     ` Jens Axboe
2010-05-24 18:12                       ` OGAWA Hirofumi
2010-05-24 18:16                         ` Michael Kerrisk
2010-05-20 12:52 ` Andi Kleen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20100603070126.GJ3564@kernel.dk \
    --to=jaxboe@fusionio.com \
    --cc=akpm@linux-foundation.org \
    --cc=hirofumi@mail.parknet.co.jp \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=miklos@szeredi.hu \
    --cc=mtk.manpages@gmail.com \
    --cc=torvalds@linux-foundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.