git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Eric Wong <e@80x24.org>
To: David Turner <novalis@novalis.org>
Cc: Duy Nguyen <pclouds@gmail.com>, kamggg@gmail.com, git@vger.kernel.org
Subject: Re: [PATCH v12 04/20] index-helper: new daemon for caching index and related stuff
Date: Sun, 26 Jun 2016 23:25:00 +0000	[thread overview]
Message-ID: <20160626232500.GA3426@dcvr.yhbt.net> (raw)
In-Reply-To: <577015C5.8070407@novalis.org>

David Turner <novalis@novalis.org> wrote:
> On 06/26/2016 04:53 AM, Eric Wong wrote:
> >David Turner <novalis@novalis.org> wrote:
> >>On 06/25/2016 10:33 AM, Duy Nguyen wrote:
> >>>>+               /*
> >>>>+                * Our connection to the client is blocking since a client
> >>>>+                * can always be killed by SIGINT or similar.
> >>>>+                */
> >>>>+               set_socket_blocking_flag(client_fd, 0);
> >>>
> >>>Out of curiosity, do we really need this? I thought default behavior
> >>>was always blocking (and checked linux kernel, it seemed to agree with
> >>>me). Maybe for extra safety because other OSes may default to
> >>>something else?
> >>
> >>Yes -- see this bug report for details:
> >>https://bugs.python.org/issue7995
> >
> >I realize it's an issue with BSDs, but it still seems
> >unnecessary, here:
> >
> >1) the packet_read => get_packet_data => read_in_full => xread
> >    call chain already poll()s on EAGAIN/EWOULDBLOCK.
> >    write_in_full => xwrite busy loops on EAGAIN/EWOULDBLOCK.
> >    xwrite should probably poll, too; but I guess EAGAIN is
> >    uncommon with small writes.
> 
> That is a CPU-burning busy loop on a non-blocking socket.

Indeed, fixes proposed in (xread was also broken(!)):
http://mid.gmane.org/20160626232112.721-3-e@80x24.org
http://mid.gmane.org/20160626232112.721-2-e@80x24.org
http://mid.gmane.org/20160626232112.721-1-e@80x24.org

  reply	other threads:[~2016-06-26 23:25 UTC|newest]

Thread overview: 49+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-05-19 21:45 [PATCH v12 00/20] index-helper/watchman David Turner
2016-05-19 21:45 ` [PATCH v12 01/20] read-cache.c: fix constness of verify_hdr() David Turner
2016-05-19 21:45 ` [PATCH v12 02/20] read-cache: allow to keep mmap'd memory after reading David Turner
2016-05-19 21:45 ` [PATCH v12 03/20] pkt-line: add gentle version of packet_write David Turner
2016-06-25 14:01   ` Duy Nguyen
2016-05-19 21:45 ` [PATCH v12 04/20] index-helper: new daemon for caching index and related stuff David Turner
2016-06-17 16:43   ` Christian Couder
2016-06-25 14:15     ` Duy Nguyen
2016-06-25 14:33   ` Duy Nguyen
2016-06-25 19:21     ` David Turner
2016-06-26  4:27       ` Duy Nguyen
2016-06-26 19:29         ` David Turner
2016-06-27  5:50           ` Duy Nguyen
2016-06-26  8:53       ` Eric Wong
2016-06-26 17:49         ` David Turner
2016-06-26 23:25           ` Eric Wong [this message]
2016-05-19 21:45 ` [PATCH v12 05/20] index-helper: add --strict David Turner
2016-06-25 14:43   ` Duy Nguyen
2016-05-19 21:45 ` [PATCH v12 06/20] daemonize(): set a flag before exiting the main process David Turner
2016-05-19 21:45 ` [PATCH v12 07/20] index-helper: add --detach David Turner
2016-06-25 14:46   ` Duy Nguyen
2016-05-19 21:45 ` [PATCH v12 08/20] index-helper: log warnings David Turner
2016-05-19 21:45 ` [PATCH v12 09/20] read-cache: add watchman 'WAMA' extension David Turner
2016-06-25 14:59   ` Duy Nguyen
2016-05-19 21:45 ` [PATCH v12 10/20] watchman: support watchman to reduce index refresh cost David Turner
2016-06-17 16:01   ` Christian Couder
2016-05-19 21:45 ` [PATCH v12 11/20] index-helper: use watchman to avoid refreshing index with lstat() David Turner
2016-06-17 13:02   ` Duy Nguyen
2016-06-17 21:39     ` David Turner
2016-06-19  5:07     ` [PATCH v12 11/20] index-helper: use watchman to avoid refreshing, " David Turner
2016-06-23  6:24       ` David Turner
2016-06-23 15:33         ` Duy Nguyen
2016-06-25 16:27   ` [PATCH v12 11/20] index-helper: use watchman to avoid refreshing " Duy Nguyen
2016-05-19 21:45 ` [PATCH v12 12/20] update-index: enable/disable watchman support David Turner
2016-06-25 16:31   ` Duy Nguyen
2016-05-19 21:45 ` [PATCH v12 13/20] unpack-trees: preserve index extensions David Turner
2016-05-19 21:45 ` [PATCH v12 14/20] watchman: add a config option to enable the extension David Turner
2016-05-19 21:45 ` [PATCH v12 15/20] index-helper: kill mode David Turner
2016-05-19 21:45 ` [PATCH v12 16/20] index-helper: don't run if already running David Turner
2016-06-17 16:18   ` Christian Couder
2016-05-19 21:45 ` [PATCH v12 17/20] index-helper: autorun mode David Turner
2016-06-25 16:35   ` Duy Nguyen
2016-05-19 21:45 ` [PATCH v12 18/20] index-helper: optionally automatically run David Turner
2016-06-25 16:38   ` Duy Nguyen
2016-05-19 21:45 ` [PATCH v12 19/20] trace: measure where the time is spent in the index-heavy operations David Turner
2016-05-19 21:45 ` [PATCH v12 20/20] index-helper: indexhelper.exitafter config David Turner
2016-06-25 13:28 ` [PATCH v12 00/20] index-helper/watchman Duy Nguyen
2016-06-25 16:42   ` Duy Nguyen
2016-06-26  4:08   ` David Turner

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

  List information: http://vger.kernel.org/majordomo-info.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20160626232500.GA3426@dcvr.yhbt.net \
    --to=e@80x24.org \
    --cc=git@vger.kernel.org \
    --cc=kamggg@gmail.com \
    --cc=novalis@novalis.org \
    --cc=pclouds@gmail.com \
    /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.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

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 read-only IMAP folder(s) and NNTP newsgroup(s).