Linux NFS development
 help / color / mirror / Atom feed
From: Timo Teras <timo.teras@iki.fi>
To: Steve Dickson <SteveD@redhat.com>
Cc: "David Härdeman" <david@hardeman.nu>, linux-nfs@vger.kernel.org
Subject: Re: [PATCH v2 0/5] rework access to /proc/net/rpc
Date: Wed, 10 Dec 2014 08:09:29 +0200	[thread overview]
Message-ID: <20141210080929.13c1fa30@vostro> (raw)
In-Reply-To: <54876A0C.3090109@RedHat.com>

On Tue, 09 Dec 2014 16:30:52 -0500
Steve Dickson <SteveD@redhat.com> wrote:

> 
> 
> On 12/09/2014 03:26 PM, David Härdeman wrote:
> > On Tue, Dec 09, 2014 at 11:08:39AM -0500, Steve Dickson wrote:
> >> On 12/09/2014 09:01 AM, David Härdeman wrote:
> >>> On 2014-12-09 09:42, Timo Teras wrote:
> >>>> On Tue, 09 Dec 2014 09:16:59 +0100
> >>>> David Härdeman <david@hardeman.nu> wrote:
> >>>>> At least the readline() function could be implemented using
> >>>>> read/write (instead of fread/fwrite) and a dynamic buffer...no?
> >>>>
> >>>> It's extra complexity. I'd rather not add it unless it's
> >>>> required. My understanding about the communication mechanism
> >>>> with kernel is that it's not required. Why have code that would
> >>>> never be used?
> >>>
> >>> I agree that it depends on your view. I tend to be very sceptical
> >>> of arbitrary limitations unless they have a very good reason
> >>> (like measurable and relevant performance impact), I doubt that's
> >>> the case here.
> >> Your skeptical-ability of arbitrary limitations has become very
> >> clear in the last few hours... ;-) I guess I'm indifferent about
> >> it... From reading your gssd patch set, it is a bit more artful
> >> not to use fixed size buffers but again, I'm indifferent... That
> >> said... if patches appear removing these fixed buffers they
> >> definitely would be considered... 
> >>
> >>>
> >>> It's up to the maintainer though, I just wanted to point it out :)
> >> My understanding these patches were needed to make nfs-utils
> >> compatible with the musl c-library. That is the case, correct? 

Yes. It is because musl FILE implementation uses writev() and readv()
with multiple buffers, and the kernel side does not handle that.

Also, the write side was very brittle even with glibc, it probably was
broken with large messages.

> > The fread/fwrite removal seems reasonable, yes. The removal of the
> > readline() function though (which could be implemented using normal
> > read/malloc/realloc) seems less so.....IMHO.
> > 
> Patches welcome! 8-)

Normally having upper limits is also a security feature. It means the
other end cannot force the client code to receive so large messages
that it runs out of memory. Though, in this case the other end is
kernel and to be trusted.

Though, it probably helps catch potential errors. The messages from
kernel really cannot exceed that length. If they do, it's an error
anyway. The message structure pretty much ensures this.

In my opinion the dynamic allocation is a step backward, rather then
forwards. It adds potential failure (out of memory), is not required,
and it does not add any features either.

IMHO, "just because it used to be so" is a bad excuse. And it would
just cause additional code making harder to debug and easier to fail.
Why add complexity when it can be done simpler?

just my five cents,
Timo

  reply	other threads:[~2014-12-10  6:09 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-12-09  8:16 [PATCH v2 0/5] rework access to /proc/net/rpc David Härdeman
2014-12-09  8:42 ` Timo Teras
2014-12-09 14:01   ` David Härdeman
2014-12-09 16:08     ` Steve Dickson
2014-12-09 20:26       ` David Härdeman
2014-12-09 21:30         ` Steve Dickson
2014-12-10  6:09           ` Timo Teras [this message]
2014-12-10 14:13             ` David Härdeman
  -- strict thread matches above, loose matches on Subject: below --
2014-10-02 13:41 Timo Teräs
2014-12-07 15:30 ` Steve Dickson

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=20141210080929.13c1fa30@vostro \
    --to=timo.teras@iki.fi \
    --cc=SteveD@redhat.com \
    --cc=david@hardeman.nu \
    --cc=linux-nfs@vger.kernel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox