From: Grant Grundler <grundler@parisc-linux.org>
To: Joel Soete <soete.joel@scarlet.be>
Cc: parisc-linux <parisc-linux@parisc-linux.org>
Subject: [parisc-linux] Re: syncdma question (back to ccio drivers)
Date: Mon, 6 Nov 2006 00:11:16 -0700 [thread overview]
Message-ID: <20061106071116.GA14243@colo.lackof.org> (raw)
In-Reply-To: <454DD015.6040304@scarlet.be>
On Sun, Nov 05, 2006 at 11:50:45AM +0000, Joel Soete wrote:
..
> > What makes you think this is a problem with IOMMU coherency?
> >
> Remember: 53c700 driver on b180 (don't use any ccio) works fine but the
> same 53c700 driver on c110/d380 failed sadely:
> <http://lists.parisc-linux.org/pipermail/parisc-linux/2006-September/030202.html>
>
> and according to James' comment:
> <http://lists.parisc-linux.org/pipermail/parisc-linux/2006-September/030204.html>
>
> this should be a pb in sg list management; not in 53c700 (because works
> fine without ccio) but well in ccio to which this 53c700 driver has to
> address its io request, right?
Ah ok. It doesn't have to be the SG list handling.
So what is wrong? I have no clue.
This might also be a write-posting problem with MMIO register writes.
The CCIO chip might be introducing enough delay to expose the problem.
My second guess is a coherency problem with "consistent" data.
Ie control data that is allocated with pci_alloc_consistent().
I find this unlikely but it's possible.
> In a first step, I so manage to backport all your sba job since the time
> those drivers looks like brotherhood:
> around
> <http://cvs.parisc-linux.org/linux-2.4/arch/parisc/kernel/sba_iommu.c?rev=1.26&view=markup>
Those two driver do have alot in common. But the TLB replacement algorithms
are NOT the same. The IO Pdir has different coherency rules as well.
Unfortunately, I don't remember all the details.
> This seems to help to improve ncr53c720 driver (not absolutely sure: run
> untar/rm loop only 1h while it failed after few min before, but not yet
> enough for me and more over it seems to break dino on the d380 additional
> nic, though) but if didn't seem to degrade 53c700 driver, it didn't improve
> it at all.
>
> In a second step, I suspected specific stuff to ccio and specialy what
> doesn't seems to exist here in ccio:
> the sba
> /* flush purges */
> READ_REG32(ioc->ioc_hpa+IOC_PCOM);
>
> but without doc (not yet publicaly available) I couldn't go further in this
> investigation.
Yes, that's another difference. IIRC, SBA can flush a _range_ of TLB entries
and CCIO (Uturn/U2) can not.
>
> Let so assume that's ok.
>
> Anyway something else could show a pb of synchronization: the driver perf
> which can be a bit improved by disabling CCIO_SEARCH_TIME as this comment
> said:
> /*
> * CCIO_SEARCH_TIME can help measure how fast the bitmap search is.
> * impacts performance though - ditch it if you don't use it.
> */
>
> If that make top stat completely false
Sorry -ENOPARSE.
> that mainly made 53c700 behaviour
> even worse: (with the same driver code and same up config) even only one
> untar/rm didn't reach to complete (iirc it didn't even finished untar)
> while it could at least complete 2 or 3 loop before.
Sounds like there is a race condition between asking for a mapping
and it's use. Enableing CCIO_SEARCH_TIME will just make that longer.
Maybe experiement with adding udelay(10) or udelay(100) in the
same code path to see what happens.
> This latest test make me though it could also be a pb of synchronization
> somewhere between ccio and 53c700 and may be a pb of cache?
Maybe.
hth,
grant
_______________________________________________
parisc-linux mailing list
parisc-linux@lists.parisc-linux.org
http://lists.parisc-linux.org/mailman/listinfo/parisc-linux
prev parent reply other threads:[~2006-11-06 7:11 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-11-02 22:11 [parisc-linux] syncdma question (back to ccio drivers) Joel Soete
2006-11-04 22:39 ` [parisc-linux] " Grant Grundler
2006-11-05 11:50 ` Joel Soete
2006-11-06 7:11 ` Grant Grundler [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20061106071116.GA14243@colo.lackof.org \
--to=grundler@parisc-linux.org \
--cc=parisc-linux@parisc-linux.org \
--cc=soete.joel@scarlet.be \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox