From: Wei Liu <wei.liu2@citrix.com>
To: Chris Patterson <cjp256@gmail.com>
Cc: Ian Jackson <ian.jackson@eu.citrix.com>,
Chris Patterson <pattersonc@ainfosec.com>,
Wei Liu <wei.liu2@citrix.com>,
George Dunlap <george.dunlap@citrix.com>,
"xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
Subject: Re: [PATCH 1/2] libfsimage: replace deprecated readdir_r() with readdir()
Date: Tue, 31 May 2016 18:53:35 +0100 [thread overview]
Message-ID: <20160531175334.GG25789@citrix.com> (raw)
In-Reply-To: <CABZSBQeV3jQ_Z+VN9aP6naNtK5QQDCmLtmV0eLGhT-PBj0G4Yg@mail.gmail.com>
On Tue, May 31, 2016 at 11:43:13AM -0400, Chris Patterson wrote:
> On Tue, May 31, 2016 at 6:42 AM, George Dunlap <george.dunlap@citrix.com> wrote:
> > On Mon, May 30, 2016 at 3:32 AM, Chris Patterson <cjp256@gmail.com> wrote:
> >> From: Chris Patterson <pattersonc@ainfosec.com>
> >>
> >> Replace the usage of readdir_r() with readdir() to address
> >> a compilation error due to the deprecation of readdir_r.
> >>
> >> glibc has deprecated this for their next release (2.24):
> >> https://sourceware.org/bugzilla/show_bug.cgi?id=19056
> >>
> >> Signed-off-by: Chris Patterson <pattersonc@ainfosec.com>
> >
> > Thanks for the patch, Chris. A bit more background would have been
> > helpful -- I did some searching and found a description[1] which says:
> >
>
> Thank you. I should have added these details in the commit message or cover.
>
> > In the current POSIX.1 specification (POSIX.1-2008), readdir(3) is
> > not required to be thread-safe. However, in modern
> > implementations (including the glibc implementation), concurrent
> > calls to readdir(3) that specify different directory streams are
> > thread-safe. Therefore, the use of readdir_r() is generally
> > unnecessary in multithreaded programs. In cases where multiple
> > threads must read from the same directory stream, using readdir(3)
> > with external synchronization is still preferable to the use of
> > readdir_r(), for the reasons given in the points above.
> >
> > The use of the specific directory stream is single-threaded, so for
> > glibc, it looks like using readdir() will be safe. But libxl needs to
> > be able to build on a number of libc's that are not glibc and still be
> > thread-safe. So we need to either 1) verify that readdir() is thread
> > safe on all libc's against which we may compile, or 2) add some
>
> Is there a list of supported libc libraries? I can look into it and
> provide more definitive answers if there are.
>
We at least care about FreeBSD and NetBSD. Sadly their manuaks don't
provide statement regarding thread safety for readdir and readdir_r.
It's better to err on the safe side.
Wei.
> > #ifdef-ery to switch to readdir_r() on systems unless we know it's
> > thread-safe.
> >
> > I'm less familiar with best practices for this kind of thing -- Ian,
> > do you have an idea?
> >
> > Thanks again for raising this, Chris.
> >
> > -George
> >
> > [1] http://man7.org/linux/man-pages/man3/readdir_r.3.html
> >
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel
next prev parent reply other threads:[~2016-05-31 17:53 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-05-30 2:32 [PATCH 1/2] libfsimage: replace deprecated readdir_r() with readdir() Chris Patterson
2016-05-30 2:32 ` [PATCH 2/2] libxl: " Chris Patterson
2016-05-31 10:42 ` [PATCH 1/2] libfsimage: " George Dunlap
2016-05-31 15:43 ` Chris Patterson
2016-05-31 17:53 ` Wei Liu [this message]
2016-05-31 20:37 ` Chris Patterson
2016-06-01 11:06 ` Ian Jackson
2016-06-01 12:04 ` Ian Jackson
2016-06-01 12:06 ` Ian Jackson
2016-06-01 13:55 ` Chris Patterson
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=20160531175334.GG25789@citrix.com \
--to=wei.liu2@citrix.com \
--cc=cjp256@gmail.com \
--cc=george.dunlap@citrix.com \
--cc=ian.jackson@eu.citrix.com \
--cc=pattersonc@ainfosec.com \
--cc=xen-devel@lists.xen.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.