time_bench: GCC notes on rdtsc and rdtscp

Adding these notes to the code, so we doni't forget.

Hannes found out that __builtin_ia32_rdtsc and
 __builtin_ia32_rdtscp are undocumented available in gcc, so there
is no need to write inline assembler functions for them any more.

 unsigned long long __builtin_ia32_rdtscp(unsigned int *foo);
   (where foo is set to: numa_node << 12 | cpu)
    and
 unsigned long long __builtin_ia32_rdtsc(void);

In the time_bench code we combine the calls with CPUID, thus
I don't see how this is directly appreciable.

Signed-off-by: Jesper Dangaard Brouer <brouer@redhat.com>
alf_queue: SPSC case does not need ACCESS_ONCE()

Alex noticed the "single" enq/deq variants should be able
to avoid using ACCESS_ONCE().  This is assuming there is
only one thread that is performing e.g. enqueue
then no need for the ACCESS_ONCE for the producer head.

Signed-off-by: Jesper Dangaard Brouer <brouer@redhat.com>
Signed-off-by: Alexander Duyck <alexander.h.duyck@redhat.com>
alf_queue_test: also list avail space

Signed-off-by: Jesper Dangaard Brouer <brouer@redhat.com>
alf_queue: allow full usage of the ring

Alex spotted we were not fully utilizing the ring/array size.
The avail space calculation were off-by-one.  We are using
absolute indexes, and thus are able to use the full size.

With this change the full size is now avail for enqueueing.

Signed-off-by: Jesper Dangaard Brouer <brouer@redhat.com>