kfree calls kfree_debugcheck which looks like (I shortened it):
struct page *page;
if (!virt_addr_valid(objp))
BUG();
page = virt_to_page(objp);
if (!PageSlab(page))
BUG();
It seems to me that these are the functions you look for.
thanks, I will check this out.
Hope you don't mind me asking, but why not keep a table of pointers?
- so no lookup is required when request comes in
- I do not have to create and update list as new request are coming in and
as they are being deleted from the system
- I think I have mentioned previously, we will have two versions. One with
this kind (where kernel virtual pointer is passed) and one where file type
fd is passed to application
Aren't you afraid that you might encounter a random string that matches
your signature?
- I am also checking with pid of the requester with pid stored in the
struct. This also make sure that this process is actual owner of the request
How many concurrent transactions are you expecting?
- Well, we have stage this in OS less envirnment. Where we are able to to
1000,000 request setup and request cleanup per second. Goal is to be able to
come as close to this number as possible. It is multiple core envirnment.
_________________________________________________________________
FREE pop-up blocking with the new MSN Toolbar ? get it now!
http://toolbar.msn.click-url.com/go/onm00200415ave/direct/01/
--
Kernelnewbies: Help each other learn about the Linux kernel.
Archive: http://mail.nl.linux.org/kernelnewbies/
FAQ: http://kernelnewbies.org/faq/