git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH v2 0/6] Force pipes to flush immediately on NonStop platform

From
Junio C Hamano <gitster@pobox.com>
Date
Jan 22, 2018, 22:36 UTC
Message-ID
<xmqqshaxjzcc.fsf@gitster.mtv.corp.google.com>
In-Reply-To
<20180120111012.GA26459@tor.lan>
Torsten Bögershausen <tboegi@web.de> writes:
Show 31 quoted lines
> 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.

Previous: Randall S. BeckerNext: Randall S. Becker
Message 28 of 32 in “Force pipes to flush immediately on NonStop platform”
  1. 0/6 Force pipes to flush immediately on NonStop platformrandall.s.becker@rogers.com, Jan 19, 2018
  2. 1/6 Bypass GCC attributes on NonStop platform where used.randall.s.becker@rogers.com, Jan 19, 2018
  3. Stefan BellerJan 19, 2018
  4. Ramsay JonesJan 19, 2018
  5. Jeff KingJan 19, 2018
  6. Ramsay JonesJan 19, 2018
  7. Randall S. BeckerJan 19, 2018
  8. 0/6 Cover Letter for NonStop Port Patchesrandall.s.becker@rogers.com, Jan 19, 2018
  9. 4/6 Force test suite traps to be cleared for NonStop kshrandall.s.becker@rogers.com, Jan 19, 2018
  10. Stefan BellerJan 19, 2018
  11. Jeff KingJan 19, 2018
  12. Randall S. BeckerJan 19, 2018
  13. Randall S. BeckerJan 19, 2018
  14. Randall S. BeckerJan 21, 2018
  15. 6/6 Add intptr_t and uintptr_t to regcomp.c for NonStop platform.randall.s.becker@rogers.com, Jan 19, 2018
  16. 5/6 Bring NonStop platform definitions up to date in git-compat-util.hrandall.s.becker@rogers.com, Jan 19, 2018
  17. 2/6 Add tar extract install options override in installation processing.randall.s.becker@rogers.com, Jan 19, 2018
  18. René ScharfeJan 20, 2018
  19. Randall S. BeckerJan 20, 2018
  20. René ScharfeJan 20, 2018
  21. Randall S. BeckerJan 20, 2018
  22. Ævar Arnfjörð BjarmasonJan 20, 2018
  23. Randall S. BeckerJan 20, 2018
  24. 3/6 Define config options required for the HPE NonStop NSX and NSE platformsrandall.s.becker@rogers.com, Jan 19, 2018
  25. Stefan BellerJan 19, 2018
  26. Torsten BögershausenJan 20, 2018
  27. Randall S. BeckerJan 20, 2018
  28. Junio C HamanoJan 22, 2018
  29. Randall S. BeckerJan 22, 2018
  30. Junio C HamanoJan 23, 2018
  31. Randall S. BeckerJan 23, 2018
  32. Randall S. BeckerJan 25, 2018

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.