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

Re: [PATCH v10 11/20] index-helper: use watchman to avoid refreshing index with lstat()

From
David Turner <dturner@twopensource.com>
Date
May 13, 2016, 17:47 UTC
Message-ID
<1463161645.24478.59.camel@twopensource.com>
In-Reply-To
<57350D7F.5030006@ramsayjones.plus.com>
On Fri, 2016-05-13 at 00:10 +0100, Ramsay Jones wrote:
Show 43 quoted lines
> 
> On 12/05/16 21:20, David Turner wrote:
> > From: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
> [snip]
> 
> >  
> > +/* in ms */
> > +#define WATCHMAN_TIMEOUT 1000
> > +
> > +static int poke_and_wait_for_reply(int fd)
> > +{
> > +	struct strbuf buf = STRBUF_INIT;
> > +	int ret = -1;
> > +	struct pollfd pollfd;
> > +	int bytes_read;
> > +	char reply_buf[4096];
> > +	const char *requested_capabilities = "";
> > +
> > +#ifdef USE_WATCHMAN
> > +	requested_capabilities = "watchman";
> > +#endif
> > +
> > +	if (fd < 0)
> > +		return -1;
> > +
> > +	strbuf_addf(&buf, "poke %d %s", getpid(),
> > requested_capabilities);
> > +	if (packet_write_gently(fd, buf.buf, buf.len))
> 
> This is not causing a problem or bug, but is none the less not
> correct - as you know, packet_write_gently() takes a 'printf' like
> variable argument list. (So, buf.buf is the format specifier and
> buf.len is an unused arg).
> 
> I think I would write this as:
> 
> 	strbuf_addf(&buf, "poke %d", getpid());
> 	if (requested_capabilities && *requested_capabilities)
> 		strbuf_addf(&buf, " %s", requested_capabilities);
> 	if (packet_write_gently(fd, "%s", buf.buf))
> 
> ... or something similar. [Note, just typing into my email client, so
> it's not been close to a compiler.]
Thanks for the report. I'll fix it.

I'm going to just send the requested_capabilities regardless of whether they are empty -- it won't hurt.

Show 6 quoted lines
> > +		return -1;
> > +	if (packet_flush_gently(fd))
> > +		return -1;
> 
> Why are you sending a flush packet - doesn't the index-helper
> simply ignore it?

It's not the packet that I'm excited about -- it's that later, packet_write might be buffered (according to a docstring). So I want to ensure that the writes actually go out *now*.

Show 6 quoted lines
> I haven't tried this yet BTW, just reading patches as they float
> on past... ;-)
> 
> ATB,
> Ramsay Jones
> 
Previous: Ramsay JonesNext: David Turner
Message 15 of 33 in “index-helper/watchman”
  1. 00/20 index-helper/watchmanDavid Turner, May 12, 2016
  2. 01/20 read-cache.c: fix constness of verify_hdr()David Turner, May 12, 2016
  3. 02/20 read-cache: allow to keep mmap'd memory after readingDavid Turner, May 12, 2016
  4. 03/20 pkt-line: add gentle version of packet_writeDavid Turner, May 12, 2016
  5. Junio C HamanoMay 12, 2016
  6. 04/20 index-helper: new daemon for caching index and related stuffDavid Turner, May 12, 2016
  7. 05/20 index-helper: add --strictDavid Turner, May 12, 2016
  8. 06/20 daemonize(): set a flag before exiting the main processDavid Turner, May 12, 2016
  9. 07/20 index-helper: add --detachDavid Turner, May 12, 2016
  10. 08/20 index-helper: log warningsDavid Turner, May 12, 2016
  11. 09/20 read-cache: add watchman 'WAMA' extensionDavid Turner, May 12, 2016
  12. 10/20 watchman: support watchman to reduce index refresh costDavid Turner, May 12, 2016
  13. 11/20 index-helper: use watchman to avoid refreshing index with lstat()David Turner, May 12, 2016
  14. Ramsay JonesMay 12, 2016
  15. David TurnerMay 13, 2016
  16. index-helper: use watchman to avoid refreshing index with lstat()David Turner, May 13, 2016
  17. Ramsay JonesMay 13, 2016
  18. index-helper: use watchman to avoid refreshing index with lstat()David Turner, May 13, 2016
  19. 12/20 update-index: enable/disable watchman supportDavid Turner, May 12, 2016
  20. 13/20 unpack-trees: preserve index extensionsDavid Turner, May 12, 2016
  21. 14/20 watchman: add a config option to enable the extensionDavid Turner, May 12, 2016
  22. 15/20 index-helper: kill modeDavid Turner, May 12, 2016
  23. 16/20 index-helper: don't run if already runningDavid Turner, May 12, 2016
  24. 17/20 index-helper: autorun modeDavid Turner, May 12, 2016
  25. 18/20 index-helper: optionally automatically runDavid Turner, May 12, 2016
  26. 19/20 trace: measure where the time is spent in the index-heavy operationsDavid Turner, May 12, 2016
  27. 20/20 untracked-cache: config optionDavid Turner, May 12, 2016
  28. Duy NguyenMay 15, 2016
  29. David TurnerMay 16, 2016
  30. Dennis KaarsemakerMay 14, 2016
  31. David TurnerMay 19, 2016
  32. Junio C HamanoMay 19, 2016
  33. David TurnerMay 19, 2016

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.