Re: [RFC] [PATCH] cache pollution aware __copy_from_user_ll()

Hiro Yoshioka
2005-08-14T10:22:45Z

Thanks for your comments.

On 8/14/05, Arjan van de Ven <arjan@infradead.org> wrote:
> On Sun, 2005-08-14 at 18:16 +0900, Hiro Yoshioka wrote:
> > Hi,
> >
> > The following is a patch to reduce a cache pollution
> > of __copy_from_user_ll().
> >
> > When I run simple iozone benchmark to find a performance bottleneck of
> > the linux kernel, I found that __copy_from_user_ll() spent CPU cycle
> > most and it did many cache misses.
>
>
> however... you copy something from userspace... aren't you going to USE
> it? The non-termoral versions actually throw the data out of the
> cache... so while this part might be nice, you pay BIG elsewhere....

The oprofile data does not give an evidence that we pay BIG elsewhere.

For examples, the original 2.6.12.4 Top 5 cache misses are the following,

37017 63.4603 vmlinux __copy_from_user_ll
1049 1.7984 vmlinux _spin_lock_irqsave
940 1.6115 vmlinux blk_rq_map_sg
896 1.5361 vmlinux generic_file_buffered_write
885 1.5172 vmlinux _spin_lock
pattern9-0-cpu4-0-08141702

cache aware version Top 5 cache misses are
899 5.7305 vmlinux blk_rq_map_sg
569 3.6270 vmlinux journal_commit_transaction
531 3.3848 vmlinux radix_tree_delete
514 3.2764 vmlinux journal_add_journal_head
505 3.2190 vmlinux release_pages
...
89 0.5673 vmlinux _mmx_memcpy_nt
pattern9-0-cpu4-0-08141625

What do you think?

Regards,
Hiro