On Thu, 2018-05-03 at 11:52 +0000, Dave Barach (dbarach) wrote:
> Dear Marco,
> 
> The condition that I'm testing for is different from the condition checked for
> by -fsanitize=alignment. 
> 
> Let's say that someone defines a packed structure which is ten bytes long.
> Clearly the compiler will not generate an aligned vector operation, nor will
> -fsanitize=alignment complain.
> 
> However, it doesn't make sense to allocate them in an aligned vector or pool -
> to a 64-byte boundary - since only the first element of the vector/pool will
> be aligned.
Thanks for taking the time to explain. Now, it makes sense to me.
> 
> The ASSERT I'm testing says that one of three things must be true: no
> alignment request, or the object size evenly divides the alignment request, or
> the alignment request evenly divides the object size.
Got you.
> 
> There are a certain number of mistakes to clean up.
> 
> HTH... Dave
Thanks,
Marco
> 
> -----Original Message-----
> From: Marco Varlese <mvarl...@suse.de> 
> Sent: Thursday, May 3, 2018 3:02 AM
> To: Dave Barach (dbarach) <dbar...@cisco.com>; Ray Kinsella <m...@ashroe.eu>; 
> v
> pp-...@lists.fd.io
> Subject: Re: [vpp-dev] segfault due to movaps unaligned access
> 
> Hi Dave,
> 
> On Wed, 2018-05-02 at 19:20 +0000, Dave Barach wrote:
> > Quick update. I added the obvious ASSERT, and immediately found a 
> > couple of non-compliant data structures. With two (trivial) fixes, vpp 
> > makes it to the debug CLI prompt. I'm going to start looking at "make 
> > test-debug", to see how many additional issues we may encounter.
> 
> Not sure if you missed my prev email but something I did in the past with this
> sort of errors was to compile the code with "-fsanitize=undefined" (or even
> simply -fsanitize=alignment).
> In that way, you don't have to place ASSERT statements yourself around
> "potential runtime error code" since the compiler will take care of
> highlighting those instances when you launch the executable.
> 
> Basically, once you compile it with that option and launch the tests you
> should be in a position to see all misalignments highlighted.
> 
> Don't know if you missed my email just wanted to follow up, maybe it might be
> quicker?
> 
> 
> Cheers,
> Marco
> > 
> > D. 
> > 
> > -----Original Message-----
> > From: Dave Barach (dbarach)
> > Sent: Tuesday, May 1, 2018 3:29 PM
> > To: Ray Kinsella <m...@ashroe.eu>; vpp-dev@lists.fd.io
> > Subject: RE: [vpp-dev] segfault due to movaps unaligned access
> > 
> > Hey Ray,
> > 
> > That's a good idea, and none too hard to implement. It's on my list.
> > 
> > I'm a bit afraid of what I may find when I turn it on, but anyhow...
> > 
> > Thanks... D.
> > 
> > -----Original Message-----
> > From: vpp-dev@lists.fd.io <vpp-dev@lists.fd.io> On Behalf Of Ray 
> > Kinsella
> > Sent: Tuesday, May 1, 2018 10:58 AM
> > To: vpp-dev@lists.fd.io
> > Subject: Re: [vpp-dev] segfault due to movaps unaligned access
> > 
> > Is it worth to use an assert (or similar) to validate the assumption 
> > in the debug build at least. Well at least until the compiler bugs get's
> > sorted?
> > 
> > Ray K
> > 
> > On 26/04/2018 17:08, Dave Barach wrote:
> > > Yes, it’s arguably a compiler bug.
> > > 
> > > But, it makes no sense to vec_validate_aligned(…), 
> > > pool_get_aligned(…) etc. objects whose size is not a multiple of the
> > > alignment request.
> > > Only the first element will be aligned to the specified boundary.
> > > 
> > > __attribute__((aligned(xxx))) is not the same thing as ensuring that 
> > > objects are _sized_ correctly.
> > > 
> > > D.
> > > 
> > > *From:*vpp-dev@lists.fd.io <vpp-dev@lists.fd.io> *On Behalf Of *Radu 
> > > Nicolau
> > > *Sent:* Thursday, April 26, 2018 4:54 AM
> > > *To:* Florin Coras <fcoras.li...@gmail.com>
> > > *Cc:* vpp-dev@lists.fd.io
> > > *Subject:* Re: [vpp-dev] segfault due to movaps unaligned access
> > > 
> > > Hi Florin,
> > > 
> > > Thanks! The patch fixes the issue.
> > > 
> > > Any idea why is it happening?
> > > 
> > > Regards,
> > > 
> > > Radu
> > > 
> > > *From:*vpp-dev@lists.fd.io <mailto:vpp-dev@lists.fd.io> 
> > > [mailto:vpp-dev@lists.fd.io] *On Behalf Of *Florin Coras
> > > *Sent:* Tuesday, April 24, 2018 11:25 PM
> > > *To:* Nicolau, Radu <radu.nico...@intel.com 
> > > <mailto:radu.nico...@intel.com>>
> > > *Cc:* vpp-dev@lists.fd.io <mailto:vpp-dev@lists.fd.io>
> > > *Subject:* Re: [vpp-dev] segfault due to movaps unaligned access
> > > 
> > > Hi Radu,
> > > 
> > > Making the crypto_worker_main_t a full cache line in size (see patch
> > > [1]) seems to solve the issue. Could you confirm?
> > > 
> > > Florin
> > > 
> > > [1] https://gerrit.fd.io/r/#/c/12086/
> > > 
> > >     On Apr 24, 2018, at 9:23 AM, Radu Nicolau <radu.nico...@intel.com
> > >     <mailto:radu.nico...@intel.com>> wrote:
> > > 
> > >     Hello all,
> > > 
> > >     We’re seeing a weird issue, that is a segfault that looks to be
> > >     caused by a movaps instruction that is trying to access an address
> > >     that is not 16 byte aligned.
> > > 
> > >     The call originates from a vec_validate_init_empty_aligned that has
> > >     the argument aligned to 16 bytes.
> > > 
> > >     I have seen something like this in the past, we couldn’t find a root
> > >     cause and considered it a GCC bug (version 5 then), but now it pops
> > >     up again on version 7, so probably it isn’t.
> > > 
> > >     Any idea? A snapshot of the gdb screen below.
> > > 
> > >     gcc (Ubuntu 7.2.0-8ubuntu3.2) 7.2.0
> > > 
> > >     https://postimg.cc/image/9jy4p38at/
> > > 
> > >     thanks and I will appreciate any help,
> > > 
> > >     Radu
> > > 
> > > 
> > 
> > 
> > 
> > 
> > 
> > 
> 
> --
> Marco V
> 
> SUSE LINUX GmbH | GF: Felix Imendörffer, Jane Smithard, Graham Norton HRB
> 21284 (AG Nürnberg) Maxfeldstr. 5, D-90409, Nürnberg
-- 
Marco V

SUSE LINUX GmbH | GF: Felix Imendörffer, Jane Smithard, Graham Norton
HRB 21284 (AG Nürnberg) Maxfeldstr. 5, D-90409, Nürnberg

-=-=-=-=-=-=-=-=-=-=-=-
Links:

You receive all messages sent to this group.

View/Reply Online (#9163): https://lists.fd.io/g/vpp-dev/message/9163
View All Messages In Topic (17): https://lists.fd.io/g/vpp-dev/topic/18058213
Mute This Topic: https://lists.fd.io/mt/18058213/21656
New Topic: https://lists.fd.io/g/vpp-dev/post

Change Your Subscription: https://lists.fd.io/g/vpp-dev/editsub/21656
Group Home: https://lists.fd.io/g/vpp-dev
Contact Group Owner: vpp-dev+ow...@lists.fd.io
Terms of Service: https://lists.fd.io/static/tos
Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to