Re: [PATCH] crypto/xor.c: use 2 pages for xor speed testing
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, 152fastest-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 -- To unsubscribe from this list: send the line unsubscribe linux-crypto in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] crypto/xor.c: use 2 pages for xor speed testing
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 ak...@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, 152fastest-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. -- To unsubscribe from this list: send the line unsubscribe linux-crypto in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] crypto/xor.c: use 2 pages for xor speed testing
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 ak...@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, 152fastest-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 -- To unsubscribe from this list: send the line unsubscribe linux-crypto in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH] crypto/xor.c: use 2 pages for xor speed testing
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 ak...@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 -- To unsubscribe from this list: send the line unsubscribe linux-crypto in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html