[lkml]   [2008]   [Oct]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: [RFC Patch 0/9] Hardware Breakpoint interfaces
    On Tue, Oct 07, 2008 at 04:36:54PM +0200, Avi Kivity wrote:
    > K.Prasad wrote:
    >> On Tue, Oct 07, 2008 at 02:29:05PM +0200, Avi Kivity wrote:
    >>> K.Prasad wrote:
    >>>> - Enable KGDB and KVM to use the register_kernel_hw_breakpoint()
    >>>> interface for their HW Breakpoint usage, in the absence of which
    >>>> they will be broken during simultaneous use.
    >>> KVM conceptually isn't a kernel use of the debug registers. KVM
    >>> modifies the debug registers while the guest is running, and restores
    >>> them after the guest returns.
    >>> Right now, as an optimization, KVM defers restoring the debug
    >>> registers until after the next context switch out of the kvm task,
    >>> or until the next exit to userspace (whichever comes earlier); we
    >>> should change this to avoid the deferral if kernel breakpoints are
    >>> in effect. This will allow simultaneous use of KVM breakpoints and
    >>> kernel breakpoints.
    >> The patch posted provides interface for using HW breakpoints on both
    >> user- and kernel-space breakpoints. KVM's user-space address breakpoint
    >> requirements, after code-modification, should be made to use
    >> register_user_hw_breakpoint() interface (presently un-exported but will
    >> be changed subsequently) to help maintain a system-wide consistent view on the
    >> availability of HW Breakpoint registers.
    > Correcting myself, actually kvm breakpoints are in a third namespace.
    > You could have kernel breakpoints, user breakpoints, and guest
    > breakpoints coexisting.
    >> Presently I find plenty of set_debugreg() calls from kvm/ which will
    >> modify the registers directly and break the breakpoint register
    >> management brought-in through the patch.
    > If kvm restores the registers, should there be any problem?
    No, it should be fine although I don't understand how the exception
    handler is invoked in KVM without the use of notifier or a hook in
    die_debug (or have they replaced code at a layer much below that?).

    Apart from the doubt I've stated above, if they operate by replacing
    the breakpoint register contents before a context switch from KVM to
    other processes, they might in fact help maximise its utilisation.

    Thanks for the clarification!


     \ /
      Last update: 2008-10-07 18:49    [W:0.290 / U:16.312 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site