On 09/16/2014 01:49 PM, Sebastian Huber wrote:
On 16/09/14 13:42, Daniel Hellstrom wrote:
Hello,

what is the use case for the following functions:

rtems_cache_flush_multiple_data_lines_processor_set()

rtems_cache_invalidate_multiple_data_lines_processor_set()

rtems_cache_flush_entire_data_processor_set()

rtems_cache_invalidate_entire_data_processor_set()

?

Makes it sense on an SMP system running an operating system and application
in one address space to do processor specific cache operations?

The functions are currently unused (except for the test program).

I think most likely we want to flush/invalidate all CPUs in the system or only
the local CPU's cache. Why do you ask, have you found a reason to limit/change
the API?

For all CPUs, you have the standard functions.

You mean the standard function should operate on all CPUs? That would change the behaviour on SMP, but is probably what the user wants? You mean to add add cpu_local flush API next to the standard functions?


The usage of "local CPU" is extremely dangerous since this makes only sense if 
you are absolutely sure that you stay on the current processor long enough.
It might be dangerous, but we need that ability. Isn't it only to disable 
global interrupt and then it is safe, or when CPU affinity is used we could 
know that we're always executing on the same CPU?


I am in favour of removing these new API calls in case there is no strong use 
case.

What is the reason for that, footprint, ease BSP support etc?

Daniel

_______________________________________________
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

Reply via email to