From: Eric Blake <eblake@redhat.com>
To: Peter Maydell <peter.maydell@linaro.org>,
Jason Wang <jasowang@redhat.com>
Cc: QEMU Developers <qemu-devel@nongnu.org>
Subject: Re: [Qemu-devel] [PULL V3 00/20] Net patches
Date: Thu, 26 May 2016 09:20:51 -0600 [thread overview]
Message-ID: <57471453.40806@redhat.com> (raw)
In-Reply-To: <CAFEAcA9DGPR_D1TgJKYRWk2ekKRmDSCHnj1jC6ei+Xp=MZ8erA@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 1147 bytes --]
On 05/26/2016 09:08 AM, Peter Maydell wrote:
>
> Apologies for the lack of any backtraces in the output, but
> this is almost certainly the result of trying to do le64_to_cpu()
> or cpu_to_le64() on a buffer which isn't necessarily aligned
> (usually some pointer into guest memory). Use the functions
> ldq_le_p() and stq_le_p() instead, which will handle a
> potentially misaligned pointer for you. (There are similar
> functions for other access widths too.)
Since these functions are constructed by ## token pasting, it's very
hard to grep .h files to see what variations-on-a-theme are actually
available, nor is the documentation clear on what they all do (in-place
vs. copy, pass a value vs. a pointer, ...). It might be a nice
bite-sized task to beef up the documentation and at least call out ALL
of the endian-conversion functions in a nice comment (to make it
greppable), along with this tidbit of information on which forms are
optimized but require alignment, vs. work anywhere but potentially slower.
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library http://libvirt.org
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 604 bytes --]
next prev parent reply other threads:[~2016-05-26 15:21 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-05-26 2:16 [Qemu-devel] [PULL V3 00/20] Net patches Jason Wang
2016-05-26 2:16 ` [Qemu-devel] [PULL V3 01/20] net/tap: Allocating Large sized arrays to heap Jason Wang
2016-05-26 2:16 ` [Qemu-devel] [PULL V3 02/20] net: mipsnet: check packet length against buffer Jason Wang
2016-05-26 2:16 ` [Qemu-devel] [PULL V3 03/20] msix: make msix_clr_pending() visible for clients Jason Wang
2016-05-26 2:16 ` [Qemu-devel] [PULL V3 04/20] pci: Introduce define for PM capability version 1.1 Jason Wang
2016-05-26 2:16 ` [Qemu-devel] [PULL V3 05/20] pcie: Add support for PCIe CAP v1 Jason Wang
2016-05-26 2:16 ` [Qemu-devel] [PULL V3 06/20] pcie: Introduce function for DSN capability creation Jason Wang
2016-05-26 2:16 ` [Qemu-devel] [PULL V3 07/20] vmxnet3: Use generic function for DSN capability definition Jason Wang
2016-05-26 2:16 ` [Qemu-devel] [PULL V3 08/20] net: Introduce Toeplitz hash calculator Jason Wang
2016-05-26 2:16 ` [Qemu-devel] [PULL V3 09/20] net: Add macros for MAC address tracing Jason Wang
2016-05-26 2:16 ` [Qemu-devel] [PULL V3 10/20] vmxnet3: Use common MAC address tracing macros Jason Wang
2016-05-26 2:16 ` [Qemu-devel] [PULL V3 11/20] net_pkt: Name vmxnet3 packet abstractions more generic Jason Wang
2016-05-26 2:16 ` [Qemu-devel] [PULL V3 12/20] rtl8139: Move more TCP definitions to common header Jason Wang
2016-05-26 2:16 ` [Qemu-devel] [PULL V3 13/20] net_pkt: Extend packet abstraction as required by e1000e functionality Jason Wang
2016-05-26 2:16 ` [Qemu-devel] [PULL V3 14/20] vmxnet3: Use pci_dma_* API instead of cpu_physical_memory_* Jason Wang
2016-05-26 2:16 ` [Qemu-devel] [PULL V3 15/20] e1000_regs: Add definitions for Intel 82574-specific bits Jason Wang
2016-05-26 2:16 ` [Qemu-devel] [PULL V3 16/20] e1000: Move out code that will be reused in e1000e Jason Wang
2016-05-26 2:16 ` [Qemu-devel] [PULL V3 17/20] net: Introduce e1000e device emulation Jason Wang
2016-05-26 2:16 ` [Qemu-devel] [PULL V3 18/20] e1000e: Introduce qtest for e1000e device Jason Wang
2016-05-26 2:16 ` [Qemu-devel] [PULL V3 19/20] net: vl: Move default_net to vl.c Jason Wang
2016-05-26 2:16 ` [Qemu-devel] [PULL V3 20/20] net/net: Add SocketReadState for reuse codes Jason Wang
2016-05-26 15:08 ` [Qemu-devel] [PULL V3 00/20] Net patches Peter Maydell
2016-05-26 15:20 ` Eric Blake [this message]
2016-05-26 15:28 ` Peter Maydell
2016-05-27 3:35 ` Jason Wang
2016-05-27 9:03 ` Peter Maydell
2016-05-29 15:22 ` Dmitry Fleytman
2016-05-29 16:45 ` Peter Maydell
2016-05-30 1:51 ` Jason Wang
2016-05-30 11:52 ` Peter Maydell
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=57471453.40806@redhat.com \
--to=eblake@redhat.com \
--cc=jasowang@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.