2007-01-11 17:10:54

by Hoang-Nam Nguyen

[permalink] [raw]
Subject: [PATCH 2.6.21 0/8] ehca: remove use of do_mmap() from kernel space and minor cleanup

Hello Roland and Christoph H.!
Here is a set of patches for ehca, whose main purpose is to remove unproper use of
do_mmap() in ehca kernel space as suggested by Christoph H. Other "small" changes
are:
* Remove "dead" prototype declarations (those without code implementation)
* Use SLAB_ defines instead GFP_ ones when allocating memory from slab cache

Actually I should separate those patches for more clarity. Unfortunately that
code cleanup above has been incorporated much earlier in our repository, and
I had not paid attention on when I started to rework the mmap() stuff. Sorry
for this inconvenience!

Now more detail on mmap() rework:
- For eHCA hardware register block we use remap_pfn_range() as previously.
- For queue pages we call pattern vm_insert_page() to register each allocated
kernel page.
- For each mmap-ed resource (hardware register block, send/recv and completion
queue) we introduce a use counter that is incremented and decremented by
the call-backs open()/close(). Destroying a completion queue or queue pair
will succeed only if all associated counters are zero. That means those resources
must be mmap-ed resp. munmap-ed properly by user space.

Thanks
Nam


2007-01-11 18:26:13

by Hoang-Nam Nguyen

[permalink] [raw]
Subject: Re: [PATCH 2.6.21 0/8] ehca: remove use of do_mmap() from kernel space and minor cleanup

Please ignore this. Pushed the send button to fast again.
Regards
Nam

On Thursday 11 January 2007 18:07, Hoang-Nam Nguyen wrote:
> Hello Roland and Christoph H.!
> Here is a set of patches for ehca, whose main purpose is to remove unproper use of
> do_mmap() in ehca kernel space as suggested by Christoph H. Other "small" changes
> are:
> * Remove "dead" prototype declarations (those without code implementation)
> * Use SLAB_ defines instead GFP_ ones when allocating memory from slab cache
>
> Actually I should separate those patches for more clarity. Unfortunately that
> code cleanup above has been incorporated much earlier in our repository, and
> I had not paid attention on when I started to rework the mmap() stuff. Sorry
> for this inconvenience!
>
> Now more detail on mmap() rework:
> - For eHCA hardware register block we use remap_pfn_range() as previously.
> - For queue pages we call pattern vm_insert_page() to register each allocated
> kernel page.
> - For each mmap-ed resource (hardware register block, send/recv and completion
> queue) we introduce a use counter that is incremented and decremented by
> the call-backs open()/close(). Destroying a completion queue or queue pair
> will succeed only if all associated counters are zero. That means those resources
> must be mmap-ed resp. munmap-ed properly by user space.
>
> Thanks
> Nam
>