Re: [PATCH] memory: transaction API

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

 



On 07/21/2011 03:09 PM, Jan Kiszka wrote:
>
>  Why? just stick a _begin() and _commit() at the start and end of the
>  update_mapping() function.  It's an optional API, for simple cases (like
>  mapping a BAR) you don't have to use it.

begin
delete old
free old
create new
add new
end

vs.

update


The problem is that "update" can change lots of things. offset, size, whether it's mmio or RAM, read-onlyness, even the wierd things like coalesced mmio. So it's either a function with 324.2 parameters (or a large struct), or it's a series of functions with demarcation as to where the update begins and ends.

>
>
>>  Do we have transactional scenarios during runtime where multiple memory
>>  regions are reconfigured?
>
>  Both cirrus and 440fx PAM, I believe.  They don't check for the "no
>  change" condition (at least, not completely) and instead override the
>  previous mapping.

That's the job of the memory mapping core IIUC.

In my opinion, too.  Devices should be dead simple.

But it can only be done
efficiently with an 'update' operation.

Why is the transaction API inefficient? AFAICT it accomplishes the same thing. Some cycles are spent on finding out nothing has changed, but that's fine.

--
error compiling committee.c: too many arguments to function

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux