|   | 
      | 
  
  
      | 
      | 
  
 
     | 
    | 
  
  
     | 
    | 
  
  
    |   | 
      | 
  
  
    | 
         
xen-devel
Re: [Xen-devel] [PATCH] x86: fix preemptable page	 typehandling(v2)
 
>>> Keir Fraser <keir.fraser@xxxxxxxxxxxxx> 30.10.08 16:00 >>>
>On 30/10/08 14:56, "Jan Beulich" <jbeulich@xxxxxxxxxx> wrote:
>
>>> get_page() across all __put_page() operations and then skipping the
>>> put_page() in some cases, for example, seems inefficient and also makes the
>>> code less clear. Why would you do it that way?
>> 
>> Because I can't handle a failure of get_page() (due to count overflow)
>> once I'm past the put()s.
>
>We could make get_page() always leave a few available references, and then
>define a new get_page() variant which:
> A. Does not check the owner
> B. Knows that it is incrementing a non-zero count
> C. Is able to use the few references never claimed by get_page().
>
>This would be basically a small cmpxchg() loop. Since it's only executed
>before setting PGT_partial we know that only one such special reference is
>needed per page and we could just make get_page() leave headroom of one
>reference.
>
>Simpler code and faster code?
Yes - admittedly I had expected you to dislike a special casing approach like
this...
Jan
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
 
 |   
 
 | 
    | 
  
  
    |   | 
    |