DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] ixgbe_recv_scattered_pkts_vec split_flags question
@ 2015-07-21 15:09 Zoltan Kiss
  2015-07-21 15:17 ` Bruce Richardson
  0 siblings, 1 reply; 2+ messages in thread
From: Zoltan Kiss @ 2015-07-21 15:09 UTC (permalink / raw)
  To: dev

Hi,

I have a question regarding split_flags in this question. It's defined 
as an array of 1 byte unsigned ints:

uint8_t split_flags[RTE_IXGBE_VPMD_RX_BURST] = {0};

RTE_IXGBE_VPMD_RX_BURST is 32, so it will be 32 bytes. Then we cast it 
into a pointer for 4 byte values, and check the first 4 elements of that 
array

const uint32_t *split_fl32 = (uint32_t *)split_flags;
if (rxq->pkt_first_seg == NULL &&
		split_fl32[0] == 0 && split_fl32[1] == 0 &&
		split_fl32[2] == 0 && split_fl32[3] == 0)

So we only check the first half of this 32 byte array. But 
_recv_raw_pkts_vec() seems to use the whole array. Is this a bug or a 
feature? Or am I mistaken in the math somewhere?

Regards,

Zoltan Kiss

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [dpdk-dev] ixgbe_recv_scattered_pkts_vec split_flags question
  2015-07-21 15:09 [dpdk-dev] ixgbe_recv_scattered_pkts_vec split_flags question Zoltan Kiss
@ 2015-07-21 15:17 ` Bruce Richardson
  0 siblings, 0 replies; 2+ messages in thread
From: Bruce Richardson @ 2015-07-21 15:17 UTC (permalink / raw)
  To: Zoltan Kiss; +Cc: dev

On Tue, Jul 21, 2015 at 04:09:59PM +0100, Zoltan Kiss wrote:
> Hi,
> 
> I have a question regarding split_flags in this question. It's defined as an
> array of 1 byte unsigned ints:
> 
> uint8_t split_flags[RTE_IXGBE_VPMD_RX_BURST] = {0};
> 
> RTE_IXGBE_VPMD_RX_BURST is 32, so it will be 32 bytes. Then we cast it into
> a pointer for 4 byte values, and check the first 4 elements of that array
> 
> const uint32_t *split_fl32 = (uint32_t *)split_flags;
> if (rxq->pkt_first_seg == NULL &&
> 		split_fl32[0] == 0 && split_fl32[1] == 0 &&
> 		split_fl32[2] == 0 && split_fl32[3] == 0)
> 
> So we only check the first half of this 32 byte array. But
> _recv_raw_pkts_vec() seems to use the whole array. Is this a bug or a
> feature? Or am I mistaken in the math somewhere?
> 
> Regards,
> 
> Zoltan Kiss

Yes, you are right, this does look like a bug. The uint32_t's should probably be
uint64_t's. :-(

/Bruce

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2015-07-21 15:17 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-07-21 15:09 [dpdk-dev] ixgbe_recv_scattered_pkts_vec split_flags question Zoltan Kiss
2015-07-21 15:17 ` Bruce Richardson

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).