From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1Np9KL-0002JN-Pb for qemu-devel@nongnu.org; Tue, 09 Mar 2010 18:59:05 -0500 Received: from [199.232.76.173] (port=50614 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Np9KL-0002IT-8G for qemu-devel@nongnu.org; Tue, 09 Mar 2010 18:59:05 -0500 Received: from Debian-exim by monty-python.gnu.org with spam-scanned (Exim 4.60) (envelope-from ) id 1Np9KJ-0002XD-Bq for qemu-devel@nongnu.org; Tue, 09 Mar 2010 18:59:05 -0500 Received: from mail-gw0-f45.google.com ([74.125.83.45]:56088) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1Np9KJ-0002X6-1j for qemu-devel@nongnu.org; Tue, 09 Mar 2010 18:59:03 -0500 Received: by gwaa18 with SMTP id a18so3533623gwa.4 for ; Tue, 09 Mar 2010 15:59:02 -0800 (PST) Message-ID: <4B96E0C3.4070903@codemonkey.ws> Date: Tue, 09 Mar 2010 17:58:59 -0600 From: Anthony Liguori MIME-Version: 1.0 Subject: Re: [Qemu-devel] [PATCH 0/9] Clear fd handlers References: In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: malc Cc: qemu-devel@nongnu.org, Juan Quintela On 03/09/2010 05:53 PM, malc wrote: > On Tue, 9 Mar 2010, Juan Quintela wrote: > > >> Hi >> >> This series : >> - convert io_handlers to one QLIST >> - once there, qemu_set_fd_handlers2() has lots of arguments that are a lot of times NULL. >> Introduce a set of functions to not have to pass NULL values. >> - qemu_clear_fd_handlers(): remove it >> - qemu_set_fd_read_handler(): only read >> - qemu_set_fd_write_handler(): only write >> - qemu_set_fd_rw_handler(): read/write >> - qemu_set_fd_poll_handler(): it was only used for reads and in qemu-char.c. >> >> - once there fix bt that don't need poll at all (having a poll function that always return true >> is the equivalent of not having one). >> - remove cast to (void *)(unsigned long) for things that already were pointers >> - IOCanRWHandler is only used for reads -> rename it (almost no users). >> >> ToDo: >> - to remove the export of qemu_set_fd_handlers2() we need a solution for tap. >> Tap is the only user in qemu that uses poll, read and write, and it changes in very imaginative >> ways: >> qemu_set_fd_handler2(s->fd, >> s->read_poll ? tap_can_send : NULL, >> s->read_poll ? tap_send : NULL, >> s->write_poll ? tap_writable : NULL, >> s); >> >> No ideas about how to transform this into something that don't use NULL's in any of its fields >> other than a row of if's. >> >> - removal of poll function. comment of qemu_set_fd_handler2() >> /* XXX: fd_read_poll should be suppressed, but an API change is >> necessary in the character devices to suppress fd_can_read(). */ >> >> But qemu-char.c is a complex beast, and would preffer to 1st get this patches in, and then >> work on the other stuff. >> >> - obvious optimization now is to have the FD_SET() for write/read already filled, but I >> haven't done any meassurement. >> >> Comments? >> >> Juan Quintela (9): >> Convert io handlers to QLIST >> Introduce qemu_clear_fd_handler() >> Introduce qemu_set_fd_read_handler() >> Introduce qemu_set_fd_write_handler() >> Introduce qemu_set_fd_rw_handler() >> bt: remove bt_host_read_poll() >> Introduce qemu_set_fd_poll_handler() >> remove useless cast >> rename IOCanRWHandler to IOCanReadHandler >> >> aio.c | 2 +- >> audio/alsaaudio.c | 12 +++--- >> audio/ossaudio.c | 10 ++-- >> bt-host.c | 9 +---- >> bt-vhci.c | 2 +- >> hw/baum.c | 2 +- >> hw/xen_backend.c | 10 ++-- >> migration-exec.c | 8 ++-- >> migration-fd.c | 5 +- >> migration-tcp.c | 10 ++-- >> migration-unix.c | 10 ++-- >> migration.c | 8 ++-- >> net/socket.c | 14 +++--- >> net/vde.c | 4 +- >> qemu-aio.h | 4 +- >> qemu-char.c | 48 +++++++++++----------- >> qemu-char.h | 25 ++++++++--- >> qemu-common.h | 2 +- >> qemu-tool.c | 9 ++-- >> usb-linux.c | 4 +- >> vl.c | 114 +++++++++++++++++++++++++++++++++++--------------- >> vnc-auth-sasl.c | 2 +- >> vnc-auth-vencrypt.c | 6 +- >> vnc.c | 12 +++--- >> 24 files changed, 190 insertions(+), 142 deletions(-) >> > What's the point if it ends up adding 48 lines of code? > Yeah, I think this would be more interesting if it eliminated the can_read handlers altogether. Regards, Anthony Liguori