Re: [PATCH v3 2/3] hvc_init(): Enforce one-time initialization.
From: Amit Shah <hidden>
Date: 2011-11-29 14:22:23
Also in:
lkml, virtualization, xen-devel
From: Amit Shah <hidden>
Date: 2011-11-29 14:22:23
Also in:
lkml, virtualization, xen-devel
Hi, On (Mon) 28 Nov 2011 [15:40:41], Miche Baker-Harvey wrote:
Amit, You said that the work would be serialized "due to port additions being on work items on the same workqueue". I'm not seeing that.
You leave a lot of questions unanswered. What's your environment? Are you hot-plugging ports? Are you using qemu? What's your command line?
I've double checked this by using a mutex_trylock in hvc_console::hvc_alloc(), and here's the relevant output from dmesg: root@myubuntu:~# dmesg | grep MBH [3307216.210274] MBH: got hvc_ports_mutex [3307216.210690] MBH: trylock of hvc_ports_mutex failed [3307216.211143] MBH: got hvc_ports_mutex This is in a system with two virtio console ports, each of which is a console. I think if the VIRTIO_CONSOLE_CONSOLE_PORT message handling were actually being serialized, the trylock should never fail.
Agreed.
What's the source of the serialization for the workqueue items? At first reading it looks like the control_work_handler gets called for each virtio interrupt?
It all depends on how you add ports. If you're using qemu, they happen via the control work handler. Amit