From: David Laight <David.Laight@ACULAB.COM>
To: "'Linus Torvalds'" <torvalds@linux-foundation.org>,
Ingo Molnar <mingo@kernel.org>
Cc: Thomas Gleixner <tglx@linutronix.de>,
Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>,
"x86@kernel.org" <x86@kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"netdev@vger.kernel.org" <netdev@vger.kernel.org>,
"mingo@redhat.com" <mingo@redhat.com>,
"hpa@zytor.com" <hpa@zytor.com>,
"davem@davemloft.net" <davem@davemloft.net>,
"akpm@linux-foundation.org" <akpm@linux-foundation.org>,
"ganeshgr@chelsio.com" <ganeshgr@chelsio.com>,
"nirranjan@chelsio.com" <nirranjan@chelsio.com>,
"indranil@chelsio.com" <indranil@chelsio.com>,
Andy Lutomirski <luto@kernel.org>,
Peter Zijlstra <a.p.zijlstra@chello.nl>,
Fenghua Yu <fenghua.yu@intel.com>,
Eric Biggers <ebiggers3@gmail.com>
Subject: RE: [RFC PATCH 0/3] kernel: add support for 256-bit IO access
Date: Thu, 22 Mar 2018 10:35:43 +0000 [thread overview]
Message-ID: <2f5cb27711e741fba77846574e72eb62@AcuMS.aculab.com> (raw)
In-Reply-To: <CA+55aFyK6uJopBjZGyeDz0O+qzCac6AwPkJyOpuaT69inPgVgw@mail.gmail.com>
From: Sent: 21 March 2018 18:16
> To: Ingo Molnar
...
> All this to do a 32-byte PIO access, with absolutely zero data right
> now on what the win is?
>
> Yes, yes, I can find an Intel white-paper that talks about setting WC
> and then using xmm and ymm instructions to write a single 64-byte
> burst over PCIe, and I assume that is where the code and idea came
> from. But I don't actually see any reason why a burst of 8 regular
> quad-word bytes wouldn't cause a 64-byte burst write too.
The big gain is from wide PCIe reads, not writes.
Writes to uncached locations (without WC) are almost certainly required
to generate the 'obvious' PCIe TLP, otherwise things are likely to break.
> So right now this is for _one_ odd rdma controller, with absolutely
> _zero_ performance numbers, and a very high likelihood that it does
> not matter in the least.
>
> And if there are some atomicity concerns ("we need to guarantee a
> single atomic access for race conditions with the hardware"), they are
> probably bogus and misplaced anyway, since
>
> (a) we can't guarantee that AVX2 exists in the first place
Any code would need to be in memcpy_fromio(), not in every driver that
might benefit.
Then fallback code can be used if the registers aren't available.
> (b) we can't guarantee that %ymm register write will show up on any
> bus as a single write transaction anyway
Misaligned 8 byte accesses generate a single PCIe TLP.
I can look at what happens for AVX2 transfers later.
I've got code that mmap()s PCIe addresses into user space, and can
look at the TLP (indirectly through tracing on an fpga target).
Just need to set something up that uses AVX copies.
> So as far as I can tell, there are basically *zero* upsides, and a lot
> of potential downsides.
There are some upsides.
I'll do a performance measurement for reads.
David
next prev parent reply other threads:[~2018-03-22 10:35 UTC|newest]
Thread overview: 47+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-03-19 14:20 Rahul Lakkireddy
2018-03-19 14:20 ` [RFC PATCH 1/3] include/linux: add 256-bit IO accessors Rahul Lakkireddy
2018-03-19 14:20 ` [RFC PATCH 2/3] x86/io: implement 256-bit IO read and write Rahul Lakkireddy
2018-03-19 14:43 ` Thomas Gleixner
2018-03-20 13:32 ` Rahul Lakkireddy
2018-03-20 13:44 ` Andy Shevchenko
2018-03-21 12:27 ` Rahul Lakkireddy
2018-03-20 14:40 ` David Laight
2018-03-21 12:28 ` Rahul Lakkireddy
2018-03-20 14:42 ` Alexander Duyck
2018-03-21 12:28 ` Rahul Lakkireddy
2018-03-22 1:26 ` Linus Torvalds
2018-03-22 10:48 ` David Laight
2018-03-22 17:16 ` Linus Torvalds
2018-03-19 14:20 ` [RFC PATCH 3/3] cxgb4: read on-chip memory 256-bits at a time Rahul Lakkireddy
2018-03-19 14:53 ` [RFC PATCH 0/3] kernel: add support for 256-bit IO access David Laight
2018-03-19 15:05 ` Thomas Gleixner
2018-03-19 15:19 ` David Laight
2018-03-19 15:37 ` Thomas Gleixner
2018-03-19 15:53 ` David Laight
2018-03-19 16:29 ` Linus Torvalds
2018-03-20 8:26 ` Ingo Molnar
2018-03-20 8:38 ` Thomas Gleixner
2018-03-20 9:08 ` Ingo Molnar
2018-03-20 9:41 ` Thomas Gleixner
2018-03-20 9:59 ` David Laight
2018-03-20 10:54 ` Ingo Molnar
2018-03-20 13:30 ` David Laight
2018-04-03 8:49 ` Pavel Machek
2018-04-03 10:36 ` Ingo Molnar
2018-03-20 14:57 ` Andy Lutomirski
2018-03-20 15:10 ` David Laight
2018-03-21 0:39 ` Andy Lutomirski
2018-03-20 18:01 ` Linus Torvalds
2018-03-21 6:32 ` Ingo Molnar
2018-03-21 15:45 ` Andy Lutomirski
2018-03-22 9:36 ` Ingo Molnar
2018-03-21 7:46 ` Ingo Molnar
2018-03-21 18:15 ` Linus Torvalds
2018-03-22 9:33 ` Ingo Molnar
2018-03-22 17:40 ` Alexei Starovoitov
2018-03-22 17:44 ` Andy Lutomirski
2018-03-22 10:35 ` David Laight [this message]
2018-03-22 12:48 ` David Laight
2018-03-22 17:07 ` Linus Torvalds
2018-03-19 15:27 ` Christoph Hellwig
2018-03-20 13:45 ` Rahul Lakkireddy
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=2f5cb27711e741fba77846574e72eb62@AcuMS.aculab.com \
--to=david.laight@aculab.com \
--cc=a.p.zijlstra@chello.nl \
--cc=akpm@linux-foundation.org \
--cc=davem@davemloft.net \
--cc=ebiggers3@gmail.com \
--cc=fenghua.yu@intel.com \
--cc=ganeshgr@chelsio.com \
--cc=hpa@zytor.com \
--cc=indranil@chelsio.com \
--cc=linux-kernel@vger.kernel.org \
--cc=luto@kernel.org \
--cc=mingo@kernel.org \
--cc=mingo@redhat.com \
--cc=netdev@vger.kernel.org \
--cc=nirranjan@chelsio.com \
--cc=rahul.lakkireddy@chelsio.com \
--cc=tglx@linutronix.de \
--cc=torvalds@linux-foundation.org \
--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
Powered by JetHome