Re: Is there a reason we don't have kvfree_rcu()?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I'd just like to mention that the is_vmalloc_addr() test depends only on 
the virtual address, so can be done when the memory is queued, before the 
grace period.  That is, you could have kfree_rcu(), vfree_rcu(), and a 
kvfree_rcu() function which decides between them.

One advantage of that would be that you could put the vfree() sanity
checks into vfree_rcu(), so errors would have a useful backtrace,
and just do the __vunmap when the grace period expires.

Or you could build a mixed queue and do the is_vmalloc_addr() test at
the end of the grace period.  That was my original idea, because it
avoids the need for a separate queue.  (In the _rcu_bulk_data structure,
you can do a quicksort-style partitioning on is_vmalloc_addr(), so
the kfree_bulk() pointers are all contiguous.)

Just an implementation option.



[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux