[openib-general] Race in mthca_cmd_post()

Roland Dreier rdreier at cisco.com
Fri Oct 13 15:02:59 PDT 2006


    John> I was confused by this, but I believe that the readl to reg
    John> 698 is not completing because the DDR memory is not yet
    John> available because SYS_EN never got down to the card before
    John> the readl, or did not complete before readl.  This could be
    John> wrong I don't know. I was expecting to see a PIO write to
    John> reg 680 (which I can't find in the analyzer trace). What I
    John> did see is a lot of Config Write's to the PCI config space
    John> and then a Memeory read (to 698).

OK, consider me thoroughly confused.  The read to reg 698
(MTHCA_HCR_BASE + HCR_STATUS_OFFSET) is coming from go_bit(), and that
seems entirely correct to me.  The SYS_EN command should end up in
mthca_cmd_post_hcr(), and that checks the go bit before doing anything
else.  So this is exactly what I would expect to see.  AFAIK this is
working everywhere -- the device does not need to be enabled for reads
to this area to work.

What does the PCI trace look like after you add mmiowb()?

 - R.




More information about the general mailing list