From: "Randall S. Becker" <rsbecker@nexbridge.com>
To: "'Junio C Hamano'" <gitster@pobox.com>,
"'Torsten Bögershausen'" <tboegi@web.de>
Cc: <randall.s.becker@rogers.com>, <git@vger.kernel.org>
Subject: RE: [PATCH v2 0/6] Force pipes to flush immediately on NonStop platform
Date: Mon, 22 Jan 2018 17:43:34 -0500 [thread overview]
Message-ID: <001401d393d2$73458ef0$59d0acd0$@nexbridge.com> (raw)
In-Reply-To: <xmqqshaxjzcc.fsf@gitster.mtv.corp.google.com>
On January 22, 2018 5:36 PM, Junio C Hamano wrote:
> Torsten Bögershausen <tboegi@web.de> writes:
>
> > On Fri, Jan 19, 2018 at 12:33:59PM -0500, randall.s.becker@rogers.com
> wrote:
> >> From: "Randall S. Becker" <rsbecker@nexbridge.com>
> >>
> >> * wrapper.c: called setbuf(stream,0) to force pipe flushes not enabled by
> >> default on the NonStop platform.
> >>
> >> Signed-off-by: Randall S. Becker <rsbecker@nexbridge.com>
> >> ---
> >> wrapper.c | 3 +++
> >> 1 file changed, 3 insertions(+)
> >>
> >> diff --git a/wrapper.c b/wrapper.c
> >> index d20356a77..671cbb4b4 100644
> >> --- a/wrapper.c
> >> +++ b/wrapper.c
> >> @@ -403,6 +403,9 @@ FILE *xfdopen(int fd, const char *mode)
> >> FILE *stream = fdopen(fd, mode);
> >> if (stream == NULL)
> >> die_errno("Out of memory? fdopen failed");
> >> +#ifdef __TANDEM
> >> + setbuf(stream,0);
> >> +#endif
> >
> > Reading the commit message, I would have expected someting similar to
> >
> > #ifdef FORCE_PIPE_FLUSHES
> > setbuf(stream,0);
> > #endif
> >
> > (Because other systems may need the tweak as well, some day) Of course
> > you need to change that in the Makefile and config.mak.uname
>
> I actually wouldn't have expected anything like that after reading the commit
> message.
>
> First I thought it was describing only what it does (i.e. "let's use
> setbuf() to set the stream unbuffered on TANDEM"), which is a useless
> description that only says what it does which we can read from the diff, but
> "NonStop by default creates pipe that does not flush" is a potentially useful
> information the log message adds.
> But it is just "potentially"---we cannot read what exact problem the change is
> trying to address. Making a pipe totally unbuffered is a heavy hammer that
> may not be an appropriate solution---it could be that we are missing calls to
> fflush() where we need and have been lucky because most of the systems
> we deal with do line-buffered by default, or something silly/implausible like
> that, and if that is the case, a more proper fix may be to add these missing
> fflush() to right places.
>
> IOW, I do not see it explained clearly why this change is needed on any single
> platform---so "that issue may be shared by others, too"
> is a bit premature thing for me to listen to and understand, as "that issue" is
> quite unclear to me.
v4 might be a little better. The issue seems to be specific to NonStop that it's PIPE mechanism needs to have setbuf(pipe,NULL) called for git to be happy. The default behaviour appears to be different on NonStop from other platforms from our testing. We get hung up waiting on pipes unless this is done. At the moment, this is platform-specific. Other parts of the discussion led to the conclusion that we should make this available to any platform using a new configuration option, but my objective is to get the NonStop port integrated with the main git code base and when my $DAYJOB permits it, spend the time adding the option. Note: __TANDEM is #define automatically emitted by the NonStop compilers.
Does that help?
Sincerely,
Randall
next prev parent reply other threads:[~2018-01-22 22:43 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-01-19 17:33 [PATCH v2 0/6] Force pipes to flush immediately on NonStop platform randall.s.becker
2018-01-19 17:34 ` [PATCH v2 0/6] Cover Letter for NonStop Port Patches randall.s.becker
2018-01-19 17:34 ` [PATCH v2 1/6] Bypass GCC attributes on NonStop platform where used randall.s.becker
2018-01-19 19:25 ` Stefan Beller
2018-01-19 20:28 ` Ramsay Jones
2018-01-19 21:20 ` Jeff King
2018-01-19 22:43 ` Ramsay Jones
2018-01-19 22:53 ` Randall S. Becker
2018-01-19 17:34 ` [PATCH v2 2/6] Add tar extract install options override in installation processing randall.s.becker
2018-01-20 12:30 ` René Scharfe
2018-01-20 13:44 ` Randall S. Becker
2018-01-20 14:24 ` René Scharfe
2018-01-20 15:35 ` Randall S. Becker
2018-01-20 20:34 ` Ævar Arnfjörð Bjarmason
2018-01-20 20:52 ` Randall S. Becker
2018-01-19 17:34 ` [PATCH v2 3/6] Define config options required for the HPE NonStop NSX and NSE platforms randall.s.becker
2018-01-19 17:34 ` [PATCH v2 4/6] Force test suite traps to be cleared for NonStop ksh randall.s.becker
2018-01-19 19:55 ` Stefan Beller
2018-01-19 21:27 ` Jeff King
2018-01-19 22:29 ` Randall S. Becker
2018-01-19 23:29 ` Randall S. Becker
2018-01-21 4:07 ` Randall S. Becker
2018-01-19 17:34 ` [PATCH v2 5/6] Bring NonStop platform definitions up to date in git-compat-util.h randall.s.becker
2018-01-19 17:34 ` [PATCH v2 6/6] Add intptr_t and uintptr_t to regcomp.c for NonStop platform randall.s.becker
2018-01-19 19:34 ` [PATCH v2 0/6] Force pipes to flush immediately on " Stefan Beller
2018-01-20 11:10 ` Torsten Bögershausen
2018-01-20 13:23 ` Randall S. Becker
2018-01-22 22:36 ` Junio C Hamano
2018-01-22 22:43 ` Randall S. Becker [this message]
2018-01-23 18:13 ` Junio C Hamano
2018-01-23 20:46 ` Randall S. Becker
2018-01-25 3:42 ` Randall S. Becker
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='001401d393d2$73458ef0$59d0acd0$@nexbridge.com' \
--to=rsbecker@nexbridge.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=randall.s.becker@rogers.com \
--cc=tboegi@web.de \
/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;
as well as URLs for NNTP newsgroup(s).