25 Jul, 2008

1 commit

  • This patch tries to change hvc_console to not use request_irq/free_irq if
    the backend does not use irqs. This allows virtio_console to use hvc_console
    without having a linker reference to request_irq/free_irq.

    In addition, together with patch 2/3 it improves the performance for virtio
    console input. (an earlier version of this patch was tested by Yajin on lguest)

    The irq specific code is moved to hvc_irq.c and selected by the drivers that
    use irqs (System p, System i, XEN).

    I replaced "int irq" with the opaque "int data". The request_irq and
    free_irq calls are replaced with notifier_add and notifier_del. I have also
    changed the code a bit to call the notifier_add and notifier_del inside the
    spinlock area as the callbacks are found via hp->ops.

    Changes since last version:
    o remove ifdef
    o reintroduce "irq_requested" as "notified"
    o cleanups, sparse..

    I did not move the timer based polling into a separate polling scheme. I
    played with several variants, but it seems we need to sleep/schedule in
    a thread even for irq based consoles, as there are throttleing and buffer
    size constraints.

    I also kept hvc_struct defined in hvc_console.h so that hvc_irq.c can access
    the irq_requested element.

    Feedback is appreciated. virtio_console is currently the only available console
    for kvm on s390. I plan to push this change as soon as all affected parties
    agree on it. I would love to get test results from System p, Xen etc.

    Signed-off-by: Christian Borntraeger
    Signed-off-by: Rusty Russell

    Christian Borntraeger
     

27 May, 2008

4 commits

  • Add code to:

    1. Deal with the console page being canonicalized. During save, the
    console's mfn in the start_info structure is canonicalized to a pfn.
    In order to deal with that, we always use a copy of the pfn and
    indirect off that all the time. However, we fall back to using the
    mfn if the pfn hasn't been initialized yet.

    2. Restore the console event channel, and rebind it to the existing irq.

    Signed-off-by: Jeremy Fitzhardinge
    Signed-off-by: Thomas Gleixner

    Jeremy Fitzhardinge
     
  • For some perverse reason, if you call add_preferred_console() it prevents
    setup_early_printk() from successfully enabling the boot console -
    unless you make it a preferred console too...

    Also, make xenboot console output distinct from normal console output,
    since it gets repeated when the console handover happens, and the
    duplicated output is confusing without disambiguation.

    Signed-off-by: Jeremy Fitzhardinge
    Signed-off-by: Thomas Gleixner
    Cc: Markus Armbruster
    Cc: Gerd Hoffmann

    Jeremy Fitzhardinge
     
  • When using "earlyprintk=xen", also write the console output to the raw
    debug console. This will appear on dom0's console if the hypervisor
    has been compiled to allow it.

    Signed-off-by: Jeremy Fitzhardinge
    Signed-off-by: Thomas Gleixner

    Jeremy Fitzhardinge
     
  • Add a couple of functions which can write directly to the Xen console
    for debugging. This output ends up on the host's dom0 console
    (assuming it allows the domain to write there).

    Signed-off-by: Jeremy Fitzhardinge
    Signed-off-by: Thomas Gleixner

    Jeremy Fitzhardinge
     

18 Jul, 2007

1 commit