All of lore.kernel.org
 help / color / mirror / Atom feed
* Using LFSR
@ 2013-08-19 23:11 Juan Casse
  2013-08-20  7:37 ` Alex Pyrgiotis
  2013-08-20 14:26 ` Jens Axboe
  0 siblings, 2 replies; 4+ messages in thread
From: Juan Casse @ 2013-08-19 23:11 UTC (permalink / raw)
  To: fio

Hi,

How is LFSR used?

When running the job file:

[global]
readwrite=randwrite
size=64k
bs=8192
random_generator=lfsr
[test_job]

fio returns:

"fio: failed allocating random map. If running a large number of jobs,
try the 'norandommap' option or set 'softrandommap'. Or give a larger
--alloc-size to fio."

I tried the recommendations in the message above to no avail. I also
tried other combinations of size, bs, and readwrite.

Thank you,
Juan

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

* Re: Using LFSR
  2013-08-19 23:11 Using LFSR Juan Casse
@ 2013-08-20  7:37 ` Alex Pyrgiotis
  2013-08-21  0:21   ` Juan Casse
  2013-08-20 14:26 ` Jens Axboe
  1 sibling, 1 reply; 4+ messages in thread
From: Alex Pyrgiotis @ 2013-08-20  7:37 UTC (permalink / raw)
  To: Juan Casse; +Cc: fio

On 08/20/2013 02:11 AM, Juan Casse wrote:
> Hi,
> 
> How is LFSR used?
> 
> When running the job file:
> 
> [global]
> readwrite=randwrite
> size=64k
> bs=8192
> random_generator=lfsr
> [test_job]
> 
> fio returns:
> 
> "fio: failed allocating random map. If running a large number of jobs,
> try the 'norandommap' option or set 'softrandommap'. Or give a larger
> --alloc-size to fio."
> 
> I tried the recommendations in the message above to no avail. I also
> tried other combinations of size, bs, and readwrite.

Hi Juan,

Could you provide the fio version you are using (fio -v)? I'm currently
using the latest version from git and I don't see these results.
Specifically, what I'm getting is:

-------------------------------
test_job: (g=0): rw=randwrite, bs=8K-8K/8K-8K/8K-8K, ioengine=sync,
iodepth=1
fio-2.1.2-13-g3e10
Starting 1 process
Value is 7
Value is 6
Value is 4
Value is 0
Value is 1
Value is 5
Value is 2
Value is 3

test_job: (groupid=0, jobs=1): err= 0: pid=24672: Tue Aug 20 10:27:28 2013
  write: io=65536B, bw=64000KB/s, iops=8000, runt=     1msec
    clat (usec): min=6, max=43, avg=11.50, stdev=12.75
     lat (usec): min=7, max=44, avg=11.88, stdev=12.99
    clat percentiles (usec):
<...snip...>
    lat (usec) : 10=87.50%, 50=12.50%
  cpu          : usr=0.00%, sys=0.00%, ctx=16, majf=0, minf=41
<...snip...>

Run status group 0 (all jobs):
  WRITE: io=64KB, aggrb=64000KB/s, minb=64000KB/s, maxb=64000KB/s,
mint=1msec, maxt=1msec

Disk stats (read/write):
  sda: ios=0/0, merge=0/0, ticks=0/0, in_queue=0, util=0.00%
-------------------------------

The output has been cut in some parts for readability reasons. Also, the
"Value is..." lines have been added to show which blocks fio is hitting.

Regards,
Alex

-- 
Alex | apyrgio@grnet.gr

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

* Re: Using LFSR
  2013-08-19 23:11 Using LFSR Juan Casse
  2013-08-20  7:37 ` Alex Pyrgiotis
@ 2013-08-20 14:26 ` Jens Axboe
  1 sibling, 0 replies; 4+ messages in thread
From: Jens Axboe @ 2013-08-20 14:26 UTC (permalink / raw)
  To: Juan Casse; +Cc: fio

[-- Attachment #1: Type: text/plain, Size: 689 bytes --]

On 08/19/2013 05:11 PM, Juan Casse wrote:
> Hi,
> 
> How is LFSR used?
> 
> When running the job file:
> 
> [global]
> readwrite=randwrite
> size=64k
> bs=8192
> random_generator=lfsr
> [test_job]
> 
> fio returns:
> 
> "fio: failed allocating random map. If running a large number of jobs,
> try the 'norandommap' option or set 'softrandommap'. Or give a larger
> --alloc-size to fio."
> 
> I tried the recommendations in the message above to no avail. I also
> tried other combinations of size, bs, and readwrite.

That's very odd. Is it a clean compile? The error isn't that great,
since it could trigger for LFSR init failure too. Can you try with the
attached patch?

-- 
Jens Axboe


[-- Attachment #2: lfsr-debug-fail.patch --]
[-- Type: text/x-patch, Size: 705 bytes --]

diff --git a/lib/lfsr.c b/lib/lfsr.c
index b10ba7a..290829d 100644
--- a/lib/lfsr.c
+++ b/lib/lfsr.c
@@ -233,18 +233,24 @@ int lfsr_init(struct fio_lfsr *fl, uint64_t nums, unsigned long seed,
 	uint8_t *lfsr_taps;
 
 	lfsr_taps = find_lfsr(nums);
-	if (!lfsr_taps)
+	if (!lfsr_taps) {
+		printf("failed finding tap\n");
 		return 1;
+	}
 
 	fl->max_val = nums - 1;
 	fl->xormask = lfsr_create_xormask(lfsr_taps);
 	fl->cached_bit = 1UL << (lfsr_taps[0] - 1);
 
-	if (prepare_spin(fl, spin))
+	if (prepare_spin(fl, spin)) {
+		printf("prepare spin failed\n");
 		return 1;
+	}
 
-	if (lfsr_reset(fl, seed))
+	if (lfsr_reset(fl, seed)) {
+		printf("lfsr reset failed\n");
 		return 1;
+	}
 
 	return 0;
 }

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

* Re: Using LFSR
  2013-08-20  7:37 ` Alex Pyrgiotis
@ 2013-08-21  0:21   ` Juan Casse
  0 siblings, 0 replies; 4+ messages in thread
From: Juan Casse @ 2013-08-21  0:21 UTC (permalink / raw)
  To: Alex Pyrgiotis; +Cc: Juan Casse, fio

It turns out that a change I made to the code caused the error. lfsr
works. Thank you Alex.

On Tue, Aug 20, 2013 at 12:37 AM, Alex Pyrgiotis <apyrgio@grnet.gr> wrote:
> On 08/20/2013 02:11 AM, Juan Casse wrote:
>> Hi,
>>
>> How is LFSR used?
>>
>> When running the job file:
>>
>> [global]
>> readwrite=randwrite
>> size=64k
>> bs=8192
>> random_generator=lfsr
>> [test_job]
>>
>> fio returns:
>>
>> "fio: failed allocating random map. If running a large number of jobs,
>> try the 'norandommap' option or set 'softrandommap'. Or give a larger
>> --alloc-size to fio."
>>
>> I tried the recommendations in the message above to no avail. I also
>> tried other combinations of size, bs, and readwrite.
>
> Hi Juan,
>
> Could you provide the fio version you are using (fio -v)? I'm currently
> using the latest version from git and I don't see these results.
> Specifically, what I'm getting is:
>
> -------------------------------
> test_job: (g=0): rw=randwrite, bs=8K-8K/8K-8K/8K-8K, ioengine=sync,
> iodepth=1
> fio-2.1.2-13-g3e10
> Starting 1 process
> Value is 7
> Value is 6
> Value is 4
> Value is 0
> Value is 1
> Value is 5
> Value is 2
> Value is 3
>
> test_job: (groupid=0, jobs=1): err= 0: pid=24672: Tue Aug 20 10:27:28 2013
>   write: io=65536B, bw=64000KB/s, iops=8000, runt=     1msec
>     clat (usec): min=6, max=43, avg=11.50, stdev=12.75
>      lat (usec): min=7, max=44, avg=11.88, stdev=12.99
>     clat percentiles (usec):
> <...snip...>
>     lat (usec) : 10=87.50%, 50=12.50%
>   cpu          : usr=0.00%, sys=0.00%, ctx=16, majf=0, minf=41
> <...snip...>
>
> Run status group 0 (all jobs):
>   WRITE: io=64KB, aggrb=64000KB/s, minb=64000KB/s, maxb=64000KB/s,
> mint=1msec, maxt=1msec
>
> Disk stats (read/write):
>   sda: ios=0/0, merge=0/0, ticks=0/0, in_queue=0, util=0.00%
> -------------------------------
>
> The output has been cut in some parts for readability reasons. Also, the
> "Value is..." lines have been added to show which blocks fio is hitting.
>
> Regards,
> Alex
>
> --
> Alex | apyrgio@grnet.gr

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

end of thread, other threads:[~2013-08-21  0:21 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-08-19 23:11 Using LFSR Juan Casse
2013-08-20  7:37 ` Alex Pyrgiotis
2013-08-21  0:21   ` Juan Casse
2013-08-20 14:26 ` Jens Axboe

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.