mirror of
https://git.rtems.org/rtems-libbsd/
synced 2025-10-14 17:04:22 +08:00
ZONE(9): Enable per-processor cache for SMP
This prevents a potential deadlock via the Giant lock and is a performance benefit.
This commit is contained in:
@@ -209,13 +209,13 @@ void critical_exit(void);
|
||||
static __inline void
|
||||
critical_enter(void)
|
||||
{
|
||||
_Thread_Disable_dispatch();
|
||||
_Thread_Dispatch_disable();
|
||||
}
|
||||
|
||||
static __inline void
|
||||
critical_exit(void)
|
||||
{
|
||||
_Thread_Enable_dispatch();
|
||||
_Thread_Dispatch_enable(_Per_CPU_Get());
|
||||
}
|
||||
#endif /* __rtems__ */
|
||||
void init_param1(void);
|
||||
|
@@ -89,6 +89,18 @@ __FBSDID("$FreeBSD$");
|
||||
#include <vm/uma_dbg.h>
|
||||
|
||||
#include <ddb/ddb.h>
|
||||
#ifdef __rtems__
|
||||
#ifdef RTEMS_SMP
|
||||
/*
|
||||
* It is essential that we have a per-processor cache, otherwise the
|
||||
* critical_enter()/critical_exit() protection would be insufficient.
|
||||
*/
|
||||
#undef curcpu
|
||||
#define curcpu rtems_get_current_processor()
|
||||
#undef mp_maxid
|
||||
#define mp_maxid rtems_get_processor_count()
|
||||
#endif
|
||||
#endif /* __rtems__ */
|
||||
|
||||
/*
|
||||
* This is the zone and keg from which all zones are spawned. The idea is that
|
||||
|
Reference in New Issue
Block a user