[lkml]   [2007]   [Dec]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: remote debugging via FireWire * __fast__ firedump!
    Bernhard Kaindl wrote:
    > The biggest block size that worked here was 2048 bytes, which was
    > enough to get nearly 10MB/s of data transfer rate from the remote
    > memory to disk.

    The maximum payload size of block requests depends on three things:
    1. speed of the connection between the two nodes (debugged machine and
    debugging machine), 2. link layer controllers of the two nodes, 3.
    software on the debugging machine.

    1.) S100: 512 bytes, S200: 1024 bytes, S400: 2048 bytes, S800 and more:
    4096 bytes.

    2.) Controllers on CardBus cards are limited to 1024 bytes payload of
    asynchronous packets, for reasons I don't know. The other available
    controllers only have the above mentioned speed-dependent limit.

    3.) The ohci1394 driver has an implementation limitation which requires
    that all packets including headers don't exceed PAGE_SIZE. This does
    not affect the packets which go through the physical response unit
    (which they do on the debugged machine) but it affects the debugging

    A quick note to this text from :
    > + As all changes to the FireWire bus such as enabling and disabling
    > + devices cause a bus reset and thereby disable remote DMA for all
    > + devices, be sure to have FireWire enabled on the debug host (and
    > + the cable plugged) before booting the debug target for debugging.

    Bus resets are also caused by bus managing software, which Linux' old
    and new FireWire stacks and the stacks of all other FireWire capable
    desktop OSs are to varying degrees. I wonder if the following could
    happen: The two PCs are directly connected, only the PHY of the
    debugging PC is active, then the PHY of the debugged PC is activated,
    becomes root node, debugging PC examines the bus, then resets the bus to
    force its own PHY to become root node in order to get a working
    isochronous resource manager. This bus reset would switch remote DMA on
    the debugged PC off.
    Stefan Richter
    -=====-=-=== ==-- --=--

     \ /
      Last update: 2007-12-04 23:19    [W:0.026 / U:7.180 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site