Re: Extending virtio_console to support multiple ports

Amit Shah
2009-08-26T11:27:39Z

On (Tue) Aug 25 2009 [11:47:20], Amit Shah wrote:
>
> Hello all,
>
> Here is a new iteration of the patch series that implements a
> transport for guest and host communications.
>
> The code has been updated to reuse the virtio-console device instead
> of creating a new virtio-serial device.

And the problem now is that hvc calls the put_chars function with
spinlocks held and we now allocate pages in send_buf(), called from
put_chars.

A few solutions:
- Keep things as they are, virtio_console.c remains as it is and
virtio_serial.c gets added

- Have separate write paths for console devices in virtio_console.c,
which would beat the purpose of merging the two drivers and then
they'd be better off standalone

- Convert hvc's usage of spinlocks to mutexes. I've no idea how this
will play out; I'm no expert here. But I did try doing this and so far
it all looks OK. No lockups, lockdep warnings, nothing. I have full
debugging enabled. But this doesn't mean it's right.

Comments?

Amit