Debugging multithreaded driver


Hi,

I'm trying to follow a driver's trace but much too often an event on
the
other channel arrives and the trace gets messy and starts jumping back
and forth, rendering the trace completely unreadable.

My example is going through a heavy user add operation while a modify
user flows from the connected system. The trace goes back and forth
between the events and it's hard to tell apart query results and the
modify event.

Is there any way to automatically tell when it's hopping from one event
to the other?
Should I perhaps limit the driver to 1 thread anyways? Is that even
possible?
I thought about using the event-id but from what I've read so far it
doesn't look
too consistent and is more a "best effort" type.

Thanks!


--
YLivay
------------------------------------------------------------------------
YLivay's Profile: https://forums.netiq.com/member.php?userid=5678
View this thread: https://forums.netiq.com/showthread.php?t=48480

Parents
  • On 26.08.2013 10:54, YLivay wrote:
    >
    > I'm trying to follow a driver's trace but much too often an event on
    > the
    > other channel arrives and the trace gets messy and starts jumping back
    > and forth, rendering the trace completely unreadable.
    >
    > My example is going through a heavy user add operation while a modify
    > user flows from the connected system. The trace goes back and forth
    > between the events and it's hard to tell apart query results and the
    > modify event.


    It can be very difficult to read a trace from a busy driver, I
    understand your problem and have experienced it myself.

    > Is there any way to automatically tell when it's hopping from one event
    > to the other?
    > Should I perhaps limit the driver to 1 thread anyways? Is that even
    > possible?


    Each channel is independently threaded. So you can't really limit the
    driver to 1 thread total. You will always have two channels.

    > I thought about using the event-id but from what I've read so far it
    > doesn't look
    > too consistent and is more a "best effort" type.


    The event id is useful for tracking an event in a trace.

    It was my understanding that the IDM engine will try and assign an
    event-id that includes the driver which originated the change (but only
    if that driver is part of the same driverset). Otherwise, it simply
    indicates the server which originated the change.

    Regardless, the event-id plus the channel indicator should be enough to
    get you by.

    Colour coding the channels can also help. I use baretail to view my log
    files on windows with custom colour/highlighting rules to help make it
    easier to distinguish each channel.

    --
    ----------------------------------------------------------------------
    Alex McHugh
    NetIQ Knowledge Partner http://forums.netiq.com

    Please post questions in the forums. No support is provided via email.
Reply
  • On 26.08.2013 10:54, YLivay wrote:
    >
    > I'm trying to follow a driver's trace but much too often an event on
    > the
    > other channel arrives and the trace gets messy and starts jumping back
    > and forth, rendering the trace completely unreadable.
    >
    > My example is going through a heavy user add operation while a modify
    > user flows from the connected system. The trace goes back and forth
    > between the events and it's hard to tell apart query results and the
    > modify event.


    It can be very difficult to read a trace from a busy driver, I
    understand your problem and have experienced it myself.

    > Is there any way to automatically tell when it's hopping from one event
    > to the other?
    > Should I perhaps limit the driver to 1 thread anyways? Is that even
    > possible?


    Each channel is independently threaded. So you can't really limit the
    driver to 1 thread total. You will always have two channels.

    > I thought about using the event-id but from what I've read so far it
    > doesn't look
    > too consistent and is more a "best effort" type.


    The event id is useful for tracking an event in a trace.

    It was my understanding that the IDM engine will try and assign an
    event-id that includes the driver which originated the change (but only
    if that driver is part of the same driverset). Otherwise, it simply
    indicates the server which originated the change.

    Regardless, the event-id plus the channel indicator should be enough to
    get you by.

    Colour coding the channels can also help. I use baretail to view my log
    files on windows with custom colour/highlighting rules to help make it
    easier to distinguish each channel.

    --
    ----------------------------------------------------------------------
    Alex McHugh
    NetIQ Knowledge Partner http://forums.netiq.com

    Please post questions in the forums. No support is provided via email.
Children