Discussion:
[ast-developers] New alpha for testing, please... / was: Re: Patch to get ast-ksh.2013-06-28 working on Solaris 11... / was: Re: AT&T Software Technology ast alpha software download update
Roland Mainz
2013-07-15 23:23:44 UTC
Permalink
[snip]
Attached (as "astksh20130628_solaris_fixes003.diff.txt") is an updated
version of the patch which fixes the issues which came up during code
- Fixed error handling in cd(1) for NFSv4/CIFS/SMBFS XATTR directories
- Opening the history files now goes through the
|*at()|-emulation&&intercept code to make sure extra flags+signal
restart is handled properly (tested)
BTW: No, going through the |*at()| emulation is not slower unless the
|fd| argument in |openat(fd,...)| differs between individual calls
(well... at least the code in
http://svn.nrubsig.org/svn/people/gisburn/code/openat_emu/openat_emu.c
did maintain a cache (which is valid until |fchdir()|/|chdir()| is
called) and AFAIK the |*at()|-emulation in libast should do the same).
... one remaining issue came up during review... some code in
src/cmd/ksh93 (besides globbing and directory reading) still uses
|sfopen()| ... are there ant objections that I switch them over to
|sfopenat()| with this patch already (we have to do it anyway in the
future to wean-off Shell_t objects from relying on the global cwd) ?
No objection here. IMO all calls to obtain a file descriptor should go
through openat() because the reasons you've stated, plus the reason
that open() on such platforms is a libc wrapper which calls
openat(AT_FDCWD,name,flags,...).
Erm... the question was mainly for David...
near the top of my list is *at()-ifying src/lib/libast/misc/fts.c
Erm... can we please merge all the Solaris/old-Linux fixes, Cedric's
patch to pass |shp->pwdfd| down to bulitins, dgk's signal fixes, the
MADV_HUGEPAGE patch etc. etc. and make a new alpha from that, please ?
I still have more patches queued (some for largepages/hugepages on
Solaris/Linux, some for largepage vs. sfio, some for more
|*at()|'ification etc.) but would prefer working from a new alpha
instead of piling my patches even higher.

BTW: Is Phong back from his vacation ?

----

Bye,
Roland
--
__ . . __
(o.\ \/ /.o) roland.mainz at nrubsig.org
\__\/\/__/ MPEG specialist, C&&JAVA&&Sun&&Unix programmer
/O /==\ O\ TEL +49 641 3992797
(;O/ \/ \O;)
Glenn Fowler
2013-07-16 15:44:59 UTC
Permalink
we most likely will do patches in separate alpha release stages
with testing at each stage
that will limit the amount of things that can go wrong at each stage
this is based on real world experince that
even the smallest change can bring a whole system down

phong is supposed to be back
but not to where he departed from
my guess is he will be absorbing the new culture for the rest of the summer
I'll look into the vmalloc/sfio stuff until he emerges

as part of that, Roland, can you send me off-list instructions on
getting clang installed on linux, suse if you need specifics, no root privs
I'll add that to the ast build farm to nip pedantic warnings in the bud
Post by Roland Mainz
[snip]
Attached (as "astksh20130628_solaris_fixes003.diff.txt") is an updated
version of the patch which fixes the issues which came up during code
- Fixed error handling in cd(1) for NFSv4/CIFS/SMBFS XATTR directories
- Opening the history files now goes through the
|*at()|-emulation&&intercept code to make sure extra flags+signal
restart is handled properly (tested)
BTW: No, going through the |*at()| emulation is not slower unless the
|fd| argument in |openat(fd,...)| differs between individual calls
(well... at least the code in
http://svn.nrubsig.org/svn/people/gisburn/code/openat_emu/openat_emu.c
did maintain a cache (which is valid until |fchdir()|/|chdir()| is
called) and AFAIK the |*at()|-emulation in libast should do the same).
... one remaining issue came up during review... some code in
src/cmd/ksh93 (besides globbing and directory reading) still uses
|sfopen()| ... are there ant objections that I switch them over to
|sfopenat()| with this patch already (we have to do it anyway in the
future to wean-off Shell_t objects from relying on the global cwd) ?
No objection here. IMO all calls to obtain a file descriptor should go
through openat() because the reasons you've stated, plus the reason
that open() on such platforms is a libc wrapper which calls
openat(AT_FDCWD,name,flags,...).
Erm... the question was mainly for David...
near the top of my list is *at()-ifying src/lib/libast/misc/fts.c
Erm... can we please merge all the Solaris/old-Linux fixes, Cedric's
patch to pass |shp->pwdfd| down to bulitins, dgk's signal fixes, the
MADV_HUGEPAGE patch etc. etc. and make a new alpha from that, please ?
I still have more patches queued (some for largepages/hugepages on
Solaris/Linux, some for largepage vs. sfio, some for more
|*at()|'ification etc.) but would prefer working from a new alpha
instead of piling my patches even higher.
BTW: Is Phong back from his vacation ?
----
Bye,
Roland
--
__ . . __
(o.\ \/ /.o) roland.mainz at nrubsig.org
\__\/\/__/ MPEG specialist, C&&JAVA&&Sun&&Unix programmer
/O /==\ O\ TEL +49 641 3992797
(;O/ \/ \O;)
Loading...