linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Andreas Werner <wernerandy@gmx.de>
To: Borislav Petkov <bp@alien8.de>
Cc: tglx@linutronix.de, mingo@redhat.com, hpa@zytor.com,
	x86@kernel.org, dave@linux.vnet.ibm.com,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH] X86: MM: Add PAT Type write-through in combination with mtrr
Date: Sun, 27 Oct 2013 18:56:08 +0100	[thread overview]
Message-ID: <20131027175608.GA1340@thinkpad.fritz.box> (raw)
In-Reply-To: <20131027173131.GC21868@pd.tnic>

On Sun, Oct 27, 2013 at 06:31:31PM +0100, Borislav Petkov wrote:
> On Sun, Oct 27, 2013 at 05:51:59PM +0100, Andreas Werner wrote:
> > Im currently working on an ethernet driver for our own ETH core. The
> > problem is that one requirement is to not use DMA to transmit or
> > receive the data. This means the that the ethernet buffers are not
> > located in the main memory. They are located in the FPGA internal RAM.
> >
> > To transmit or receive a frame, i have to read or write to mmio to get
> > the data.
> >
> > Intel has introduced the instruction "clflush" which can flush a cache
> > line. I want to use the caches for those mmio (eth buffer) to speed
> > up the transmit/receive and to transmit/receive using PCIe bursts
> > (read/write).
> >
> > The problem was if i set the buffer to Write-Back and call clflush on
> > those mmio-addresses, the system crashed without any output.
> 
> But allocating a WB region and calling CLFLUSH right after writing
> into it sounds like you want to allocate an UC region, no? Writing
> into it will make sure the data has reached memory and is not in the
> cache, basically what CLFLUSH does but by having it UC, this happens
> automatically.
> 
> So basically what ioremap_nocache does.
> 
> > I found this articel 
> > http://software.intel.com/en-us/forums/topic/393070
> >
> > After that i configured the transmit buffers to be Write-Combining
> > (only write to that adresses) using ioremap_wc, and the receive
> > buffers to be Write-Through (ioremap_cache + mtrr Write-Through + this
> > kernel patch) everything worked as expected.
> 
> Right, but this all sounds like you want to use ioremap_nocache which
> makes your buffers UC.
> 
> -- 
> Regards/Gruss,
>     Boris.
> 
> Sent from a fat crate under my desk. Formatting is fine.
> --

Maybe you missunderstood me.

My configuration is:

Transmit Buffers WC (only write to that buffer)
i have PICe bursts on my tracer.

Receive Buffers WT (only read to that buffer).
I use clflush_cache_range before reading from that
adresses and i have PCIe bursts on my tracer.

With UC memory there are no PCIe bursts and my bandwidth
is very slow.

Best regards
	Andy

  reply	other threads:[~2013-10-27 17:56 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-10-27 12:55 [PATCH] X86: MM: Add PAT Type write-through in combination with mtrr Andreas Werner
2013-10-27 13:34 ` Borislav Petkov
2013-10-27 16:51   ` Andreas Werner
2013-10-27 17:31     ` Borislav Petkov
2013-10-27 17:56       ` Andreas Werner [this message]
2013-10-27 19:01         ` Borislav Petkov
2013-10-28  6:29           ` Andreas Werner
2013-10-28 10:17             ` Ingo Molnar
2013-10-28 10:29               ` Borislav Petkov
2013-10-28 10:31                 ` Ingo Molnar
2013-10-28 10:44                   ` Borislav Petkov
2013-10-28 10:45                   ` Andreas Werner
2013-10-28 10:51                     ` Ingo Molnar
2013-10-28 10:53                       ` H. Peter Anvin
2013-10-28 11:02                       ` Andreas Werner
2013-10-28 10:31                 ` H. Peter Anvin
2013-10-28 10:34               ` Andreas Werner
2013-10-28 10:57                 ` Borislav Petkov
2013-10-28 11:25                   ` Andreas Werner
2013-10-28 11:45                     ` Borislav Petkov
2013-10-28 12:03                       ` Andreas Werner
2013-10-28 13:58                         ` Borislav Petkov
2013-10-28 14:19                           ` Andreas Werner
  -- strict thread matches above, loose matches on Subject: below --
2013-08-25  7:01 Andreas Werner

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=20131027175608.GA1340@thinkpad.fritz.box \
    --to=wernerandy@gmx.de \
    --cc=bp@alien8.de \
    --cc=dave@linux.vnet.ibm.com \
    --cc=hpa@zytor.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=tglx@linutronix.de \
    --cc=x86@kernel.org \
    /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;
as well as URLs for NNTP newsgroup(s).