diff for duplicates of <20150203103932.GA14259@node.dhcp.inet.fi> diff --git a/a/1.txt b/N1/1.txt index aa78f5a..6e7b111 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -15,3 +15,48 @@ And now it's faster *with* the check. Sometimes CPU is just too clever. ;) -- Kirill A. Shutemov +-------------- next part -------------- +#include <stdio.h> +#include <time.h> +#include <sys/mman.h> + +#ifdef CACHE_HOT +#define SIZE (2UL << 20) +#define TIMES 100000 +#else +#define SIZE (1UL << 30) +#define TIMES 100 +#endif + +#define CACHE_LINE 64 + +int main(int argc, char **argv) +{ + struct timespec a, b, diff; + unsigned long i, *p, times = TIMES; + + p = mmap(NULL, SIZE, PROT_READ | PROT_WRITE, + MAP_ANONYMOUS | MAP_PRIVATE | MAP_POPULATE, -1, 0); + + clock_gettime(CLOCK_MONOTONIC, &a); + while (times--) { + for (i = 0; i < SIZE / sizeof(*p); + i += CACHE_LINE / sizeof(*p)) { +#ifdef CHECK_BEFORE_SET + if (p[i] != times) +#endif + p[i] = times; + } + } + clock_gettime(CLOCK_MONOTONIC, &b); + + diff.tv_sec = b.tv_sec - a.tv_sec; + if (a.tv_nsec > b.tv_nsec) { + diff.tv_sec--; + diff.tv_nsec = 1000000000 + b.tv_nsec - a.tv_nsec; + } else + diff.tv_nsec = b.tv_nsec - a.tv_nsec; + + printf("%lu.%09lu\n", diff.tv_sec, diff.tv_nsec); + return 0; +} diff --git a/a/2.hdr b/a/2.hdr deleted file mode 100644 index 09f12d4..0000000 --- a/a/2.hdr +++ /dev/null @@ -1,2 +0,0 @@ -Content-Type: text/plain; charset=us-ascii -Content-Disposition: attachment; filename="test.c" diff --git a/a/2.txt b/a/2.txt deleted file mode 100644 index 3b5975b..0000000 --- a/a/2.txt +++ /dev/null @@ -1,44 +0,0 @@ -#include <stdio.h> -#include <time.h> -#include <sys/mman.h> - -#ifdef CACHE_HOT -#define SIZE (2UL << 20) -#define TIMES 100000 -#else -#define SIZE (1UL << 30) -#define TIMES 100 -#endif - -#define CACHE_LINE 64 - -int main(int argc, char **argv) -{ - struct timespec a, b, diff; - unsigned long i, *p, times = TIMES; - - p = mmap(NULL, SIZE, PROT_READ | PROT_WRITE, - MAP_ANONYMOUS | MAP_PRIVATE | MAP_POPULATE, -1, 0); - - clock_gettime(CLOCK_MONOTONIC, &a); - while (times--) { - for (i = 0; i < SIZE / sizeof(*p); - i += CACHE_LINE / sizeof(*p)) { -#ifdef CHECK_BEFORE_SET - if (p[i] != times) -#endif - p[i] = times; - } - } - clock_gettime(CLOCK_MONOTONIC, &b); - - diff.tv_sec = b.tv_sec - a.tv_sec; - if (a.tv_nsec > b.tv_nsec) { - diff.tv_sec--; - diff.tv_nsec = 1000000000 + b.tv_nsec - a.tv_nsec; - } else - diff.tv_nsec = b.tv_nsec - a.tv_nsec; - - printf("%lu.%09lu\n", diff.tv_sec, diff.tv_nsec); - return 0; -} diff --git a/a/content_digest b/N1/content_digest index 019aef9..437fd21 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -1,18 +1,11 @@ "ref\035FD53F367049845BC99AC72306C23D1044A02027E0A@CNBJMBX05.corpusers.net\0" "ref\020150202152909.13bfd11f192fb0268b2ab4bf@linux-foundation.org\0" "ref\020150203011730.GA15653@node.dhcp.inet.fi\0" - "From\0Kirill A. Shutemov <kirill@shutemov.name>\0" - "Subject\0Re: [RFC] change non-atomic bitops method\0" + "From\0kirill@shutemov.name (Kirill A. Shutemov)\0" + "Subject\0[RFC] change non-atomic bitops method\0" "Date\0Tue, 3 Feb 2015 12:39:32 +0200\0" - "To\0Andrew Morton <akpm@linux-foundation.org>\0" - "Cc\0Wang" - Yalin <Yalin.Wang@sonymobile.com> - 'arnd@arndb.de' <arnd@arndb.de> - 'linux-arch@vger.kernel.org' <linux-arch@vger.kernel.org> - 'linux-kernel@vger.kernel.org' <linux-kernel@vger.kernel.org> - 'linux@arm.linux.org.uk' <linux@arm.linux.org.uk> - " 'linux-arm-kernel@lists.infradead.org' <linux-arm-kernel@lists.infradead.org>\0" - "\01:1\0" + "To\0linux-arm-kernel@lists.infradead.org\0" + "\00:1\0" "b\0" "On Tue, Feb 03, 2015 at 03:17:30AM +0200, Kirill A. Shutemov wrote:\n" "> Results for 10 runs on my laptop -- i5-3427U (IvyBridge 1.8 Ghz, 2.8Ghz Turbo\n" @@ -30,10 +23,8 @@ "And now it's faster *with* the check. Sometimes CPU is just too clever. ;)\n" "\n" "-- \n" - Kirill A. Shutemov - "\01:2\0" - "fn\0test.c\0" - "b\0" + " Kirill A. Shutemov\n" + "-------------- next part --------------\n" "#include <stdio.h>\n" "#include <time.h>\n" "#include <sys/mman.h>\n" @@ -79,4 +70,4 @@ "\treturn 0;\n" } -7eb166dd912f628adc9dc5279b18867b310829428fbd77f74420fe8eac058ade +7624810e56e14329ec904b96dd109a29f2ecf06663aad25842399ac6780e9c37
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.