DPDK-dev Archive on lore.kernel.org
 help / color / Atom feed
From: Aaron Conole <aconole@redhat.com>
To: David Marchand <david.marchand@redhat.com>
Cc: dev@dpdk.org,  stable@dpdk.org
Subject: Re: [dpdk-dev] [PATCH] test/common: fix log2 check
Date: Wed, 04 Dec 2019 16:19:56 -0500
Message-ID: <f7tsglzbxfn.fsf@dhcp-25.97.bos.redhat.com> (raw)
In-Reply-To: <20191204205241.5691-1-david.marchand@redhat.com> (David Marchand's message of "Wed, 4 Dec 2019 21:52:41 +0100")

David Marchand <david.marchand@redhat.com> writes:

> We recently started to get random failures on the common_autotest ut with
> clang on Ubuntu 16.04.6.
>
> Example: https://travis-ci.com/DPDK/dpdk/jobs/263177424
>
> Wrong rte_log2_u64(0) val 0, expected ffffffff
> Test Failed
>
> The ut passes 0 to log2() to get an expected value.
>
> Quoting log2 / log(3) manual:
> If x is zero, then a pole error occurs, and the functions return
> -HUGE_VAL, -HUGE_VALF, or -HUGE_VALL, respectively.
>
> rte_log2_uXX helpers handle 0 as a special value and return 0.
> Let's have dedicated tests for this case.
>
> Fixes: 05c4345ef5c2 ("test: add unit test for integer log2 function")
> Cc: stable@dpdk.org
>
> Signed-off-by: David Marchand <david.marchand@redhat.com>
> ---

Acked-by: Aaron Conole <aconole@redhat.com>

Somethings that concern me:

1.  A log2(0) should probably be an undetermined value, but this
    effectively makes log2(0) == log2(1) so that if anyone uses these
    for some mathematical work, it will have an exceptional behavior.  I
    know it's documented from a programmer perspective, but I am all for
    documenting the mathematical side effect as well.

2.  Why hasn't this been complaining for so long?  Or has it and we just
    haven't noticed?  Were some compiler flags changed recently? (maybe
    -funsafe-math was always set or something?)

-Aaron


  reply index

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-12-04 20:52 David Marchand
2019-12-04 21:19 ` Aaron Conole [this message]
2019-12-05  8:31   ` David Marchand
2019-12-05 14:39     ` Aaron Conole

Reply instructions:

You may reply publically 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=f7tsglzbxfn.fsf@dhcp-25.97.bos.redhat.com \
    --to=aconole@redhat.com \
    --cc=david.marchand@redhat.com \
    --cc=dev@dpdk.org \
    --cc=stable@dpdk.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

DPDK-dev Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/dpdk-dev/0 dpdk-dev/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 dpdk-dev dpdk-dev/ https://lore.kernel.org/dpdk-dev \
		dev@dpdk.org
	public-inbox-index dpdk-dev

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.dpdk.dev


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git