tech-kern archive

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

Re: RFC: New bus_space routine: bus_space_sync

On Jan 19, 2012, at 11:28 AM, Manuel Bouyer wrote:

> On Thu, Jan 19, 2012 at 10:59:01AM -0800, Matt Thomas wrote:
>> For prefetchable regions (like framebuffers) mapped by bus_space_map, there 
>> is a need to able force the contents out of the cache back into memory 
>> (especially when the cache is a writeback cache).
>> There is no MI way to do this with the bus_space framework so I'm proposing 
>> we add a:
>>      void bus_space_sync(bus_space_tag_t bst,
>>              bus_space_handle_t bsh,
>>              bus_size_t offset,
>>              bus_size_t length,
>>              int ops);
>> where ops is one of:
>> #define      BUS_SPACE_SYNC_WB       1 // defined by MD
>> #define      BUS_SPACE_SYNC_WBINV    2 // defined by MD
>> One caveat is that though a BUS_SPACE_SYNC_WB was requested, a platform can 
>> perform BUS_SPACE_SYNC_WBINV instead.  If the platform can't support just 
>> writeback, it is allowed to silently do a writeback-invalidate instead.
> Isn't this what bus_space_barrier(BUS_SPACE_BARRIER_SYNC) is for ?

No.  bus_space_barrier controls memory (load/store) ordering and deals with a 
completely diffeent problem.

Home | Main Index | Thread Index | Old Index