* [PATCH] crypto/xor.c: use 2 pages for xor speed testing
@ 2014-06-05 1:11 Amos Kong
2014-06-05 21:57 ` Marek Vasut
0 siblings, 1 reply; 4+ messages in thread
From: Amos Kong @ 2014-06-05 1:11 UTC (permalink / raw)
To: linux-crypto; +Cc: herbert, davem, marex
In crypto/xor.c: calibrate_xor_blocks(), we allocated total 4 pages to
do xor speed testing, the BENCH_SIZE is 1 page, and we skipped 2 pages
when we set b2.
It seems that total 2 pages are enough without skipping 2 pages.
Signed-off-by: Amos Kong <akong@redhat.com>
---
crypto/xor.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/crypto/xor.c b/crypto/xor.c
index 35d6b3a..609dfb5 100644
--- a/crypto/xor.c
+++ b/crypto/xor.c
@@ -114,12 +114,12 @@ calibrate_xor_blocks(void)
* test the XOR speed, we don't really want kmemcheck to warn about
* reading uninitialized bytes here.
*/
- b1 = (void *) __get_free_pages(GFP_KERNEL | __GFP_NOTRACK, 2);
+ b1 = (void *) __get_free_pages(GFP_KERNEL | __GFP_NOTRACK, 1);
if (!b1) {
printk(KERN_WARNING "xor: Yikes! No memory available.\n");
return -ENOMEM;
}
- b2 = b1 + 2*PAGE_SIZE + BENCH_SIZE;
+ b2 = b1 + BENCH_SIZE;
/*
* If this arch/cpu has a short-circuited selection, don't loop through
@@ -154,7 +154,7 @@ calibrate_xor_blocks(void)
#undef xor_speed
out:
- free_pages((unsigned long)b1, 2);
+ free_pages((unsigned long)b1, 1);
active_template = fastest;
return 0;
--
1.9.3
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH] crypto/xor.c: use 2 pages for xor speed testing
2014-06-05 1:11 [PATCH] crypto/xor.c: use 2 pages for xor speed testing Amos Kong
@ 2014-06-05 21:57 ` Marek Vasut
2014-06-17 7:16 ` Amos Kong
0 siblings, 1 reply; 4+ messages in thread
From: Marek Vasut @ 2014-06-05 21:57 UTC (permalink / raw)
To: Amos Kong; +Cc: linux-crypto, herbert, davem
On Thursday, June 05, 2014 at 03:11:33 AM, Amos Kong wrote:
> In crypto/xor.c: calibrate_xor_blocks(), we allocated total 4 pages to
> do xor speed testing, the BENCH_SIZE is 1 page, and we skipped 2 pages
> when we set b2.
>
> It seems that total 2 pages are enough without skipping 2 pages.
>
> Signed-off-by: Amos Kong <akong@redhat.com>
> ---
> crypto/xor.c | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/crypto/xor.c b/crypto/xor.c
> index 35d6b3a..609dfb5 100644
> --- a/crypto/xor.c
> +++ b/crypto/xor.c
> @@ -114,12 +114,12 @@ calibrate_xor_blocks(void)
> * test the XOR speed, we don't really want kmemcheck to warn about
> * reading uninitialized bytes here.
> */
> - b1 = (void *) __get_free_pages(GFP_KERNEL | __GFP_NOTRACK, 2);
> + b1 = (void *) __get_free_pages(GFP_KERNEL | __GFP_NOTRACK, 1);
> if (!b1) {
> printk(KERN_WARNING "xor: Yikes! No memory available.\n");
> return -ENOMEM;
> }
> - b2 = b1 + 2*PAGE_SIZE + BENCH_SIZE;
> + b2 = b1 + BENCH_SIZE;
>
> /*
> * If this arch/cpu has a short-circuited selection, don't loop through
> @@ -154,7 +154,7 @@ calibrate_xor_blocks(void)
> #undef xor_speed
>
> out:
> - free_pages((unsigned long)b1, 2);
> + free_pages((unsigned long)b1, 1);
>
> active_template = fastest;
> return 0;
I think this does make sense, but I am not 100% sure, sorry.
...
While looking at this code, can anyone explain to me why we have this stuff in
crypto/xor.c please ?
135 #define xor_speed(templ) do_xor_speed((templ), b1, b2)
136
137 if (fastest) {
138 printk(KERN_INFO "xor: automatically using best "
139 "checksumming function:\n");
140 xor_speed(fastest);
141 goto out;
142 } else {
[...]
149 }
150
151 printk(KERN_INFO "xor: using function: %s (%d.%03d MB/sec)\n",
152 fastest->name, fastest->speed / 1000, fastest->speed % 1000);
153
154 #undef xor_speed
Why do we not call do_xor_speed(fastest, b1, b2); right away , but we #define
xor_speed() instead ? This looks like some remnant or nonsense to me. Shall I
remove that with a patch ?
Best regards,
Marek Vasut
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] crypto/xor.c: use 2 pages for xor speed testing
2014-06-05 21:57 ` Marek Vasut
@ 2014-06-17 7:16 ` Amos Kong
2014-06-25 19:59 ` Marek Vasut
0 siblings, 1 reply; 4+ messages in thread
From: Amos Kong @ 2014-06-17 7:16 UTC (permalink / raw)
To: Marek Vasut; +Cc: linux-crypto, herbert, davem
On Thu, Jun 05, 2014 at 11:57:55PM +0200, Marek Vasut wrote:
> On Thursday, June 05, 2014 at 03:11:33 AM, Amos Kong wrote:
> > In crypto/xor.c: calibrate_xor_blocks(), we allocated total 4 pages to
> > do xor speed testing, the BENCH_SIZE is 1 page, and we skipped 2 pages
> > when we set b2.
> >
> > It seems that total 2 pages are enough without skipping 2 pages.
> >
> > Signed-off-by: Amos Kong <akong@redhat.com>
> > ---
> > crypto/xor.c | 6 +++---
> > 1 file changed, 3 insertions(+), 3 deletions(-)
> >
> > diff --git a/crypto/xor.c b/crypto/xor.c
> > index 35d6b3a..609dfb5 100644
> > --- a/crypto/xor.c
> > +++ b/crypto/xor.c
> > @@ -114,12 +114,12 @@ calibrate_xor_blocks(void)
> > * test the XOR speed, we don't really want kmemcheck to warn about
> > * reading uninitialized bytes here.
> > */
> > - b1 = (void *) __get_free_pages(GFP_KERNEL | __GFP_NOTRACK, 2);
> > + b1 = (void *) __get_free_pages(GFP_KERNEL | __GFP_NOTRACK, 1);
> > if (!b1) {
> > printk(KERN_WARNING "xor: Yikes! No memory available.\n");
> > return -ENOMEM;
> > }
> > - b2 = b1 + 2*PAGE_SIZE + BENCH_SIZE;
> > + b2 = b1 + BENCH_SIZE;
> >
> > /*
> > * If this arch/cpu has a short-circuited selection, don't loop through
> > @@ -154,7 +154,7 @@ calibrate_xor_blocks(void)
> > #undef xor_speed
> >
> > out:
> > - free_pages((unsigned long)b1, 2);
> > + free_pages((unsigned long)b1, 1);
> >
> > active_template = fastest;
> > return 0;
>
> I think this does make sense, but I am not 100% sure, sorry.
>
> ...
>
> While looking at this code, can anyone explain to me why we have this stuff in
> crypto/xor.c please ?
>
> 135 #define xor_speed(templ) do_xor_speed((templ), b1, b2)
> 136
> 137 if (fastest) {
> 138 printk(KERN_INFO "xor: automatically using best "
> 139 "checksumming function:\n");
> 140 xor_speed(fastest);
> 141 goto out;
> 142 } else {
> [...]
> 149 }
> 150
> 151 printk(KERN_INFO "xor: using function: %s (%d.%03d MB/sec)\n",
> 152 fastest->name, fastest->speed / 1000, fastest->speed % 1000);
> 153
> 154 #undef xor_speed
>
> Why do we not call do_xor_speed(fastest, b1, b2); right away , but we #define
> xor_speed() instead ? This looks like some remnant or nonsense to me. Shall I
> remove that with a patch ?
You are right.
> Best regards,
> Marek Vasut
--
Amos.
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] crypto/xor.c: use 2 pages for xor speed testing
2014-06-17 7:16 ` Amos Kong
@ 2014-06-25 19:59 ` Marek Vasut
0 siblings, 0 replies; 4+ messages in thread
From: Marek Vasut @ 2014-06-25 19:59 UTC (permalink / raw)
To: Amos Kong; +Cc: linux-crypto, herbert, davem
On Tuesday, June 17, 2014 at 09:16:03 AM, Amos Kong wrote:
[...]
> > While looking at this code, can anyone explain to me why we have this
> > stuff in crypto/xor.c please ?
> >
> > 135 #define xor_speed(templ) do_xor_speed((templ), b1, b2)
> > 136
> > 137 if (fastest) {
> > 138 printk(KERN_INFO "xor: automatically using best "
> > 139 "checksumming function:\n");
> > 140 xor_speed(fastest);
> > 141 goto out;
> > 142 } else {
> > [...]
> > 149 }
> > 150
> > 151 printk(KERN_INFO "xor: using function: %s (%d.%03d
> > MB/sec)\n", 152 fastest->name, fastest->speed / 1000,
> > fastest->speed % 1000); 153
> > 154 #undef xor_speed
> >
> > Why do we not call do_xor_speed(fastest, b1, b2); right away , but we
> > #define xor_speed() instead ? This looks like some remnant or nonsense
> > to me. Shall I remove that with a patch ?
>
> You are right.
I'm wrong. The XOR_TRY_TEMPLATES needs this #define xor_speed , so there's no
patch happening here. Sorry.
Best regards,
Marek Vasut
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2014-06-25 19:59 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-06-05 1:11 [PATCH] crypto/xor.c: use 2 pages for xor speed testing Amos Kong
2014-06-05 21:57 ` Marek Vasut
2014-06-17 7:16 ` Amos Kong
2014-06-25 19:59 ` Marek Vasut
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).