PowerPC: Add functions for shared resources hints.

This commit is contained in:
Edjunior Machado 2013-05-23 10:06:24 -05:00 committed by Ryan S. Arnold
parent 7b2991daea
commit 9323d39bae
3 changed files with 63 additions and 0 deletions

View file

@ -1,3 +1,10 @@
2013-05-23 Edjunior Machado <emachado@linux.vnet.ibm.com>
* sysdeps/powerpc/sys/platform/ppc.h: Add __ppc_yield,
__ppc_mdoio and __ppc_mdoom.
* manual/platform.texi: Document new functions __ppc_yield,
__ppc_mdoio and __ppc_mdoom.
2013-05-22 Carlos O'Donell <carlos@redhat.com>
* elf/ldconfig.c (is_hwcap_platform): Make comments full setences.

View file

@ -34,3 +34,27 @@ This frequency is not related to the processor clock or the bus clock.
It is also possible that this frequency is not constant. More information is
available in @cite{Power ISA 2.06b - Book II - Section 5.2}.
@end deftypefun
The following functions provide hints about the usage of resources that are
shared with other processors. They can be used, for example, if a program
waiting on a lock intends to divert the shared resources to be used by other
processors. More information is available in @cite{Power ISA 2.06b - Book II -
Section 3.2}.
@deftypefun {void} __ppc_yield (void)
Provide a hint that performance will probably be improved if shared resources
dedicated to the executing processor are released for use by other processors.
@end deftypefun
@deftypefun {void} __ppc_mdoio (void)
Provide a hint that performance will probably be improved if shared resources
dedicated to the executing processor are released until all outstanding storage
accesses to caching-inhibited storage have been completed.
@end deftypefun
@deftypefun {void} __ppc_mdoom (void)
Provide a hint that performance will probably be improved if shared resources
dedicated to the executing processor are released until all outstanding storage
accesses to cacheable storage for which the data is not in the cache have been
completed.
@end deftypefun

View file

@ -50,4 +50,36 @@ __ppc_get_timebase (void)
#endif
}
/* The following functions provide hints about the usage of shared processor
resources, as defined in ISA 2.06 and newer. */
/* Provides a hint that performance will probably be improved if shared
resources dedicated to the executing processor are released for use by other
processors. */
static inline void
__ppc_yield (void)
{
__asm__ volatile ("or 27,27,27");
}
/* Provides a hint that performance will probably be improved if shared
resources dedicated to the executing processor are released until
all outstanding storage accesses to caching-inhibited storage have been
completed. */
static inline void
__ppc_mdoio (void)
{
__asm__ volatile ("or 29,29,29");
}
/* Provides a hint that performance will probably be improved if shared
resources dedicated to the executing processor are released until all
outstanding storage accesses to cacheable storage for which the data is not
in the cache have been completed. */
static inline void
__ppc_mdoom (void)
{
__asm__ volatile ("or 30,30,30");
}
#endif /* sys/platform/ppc.h */