mirror of
https://git.rtems.org/rtems-libbsd/
synced 2025-10-15 22:11:19 +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
|
static __inline void
|
||||||
critical_enter(void)
|
critical_enter(void)
|
||||||
{
|
{
|
||||||
_Thread_Disable_dispatch();
|
_Thread_Dispatch_disable();
|
||||||
}
|
}
|
||||||
|
|
||||||
static __inline void
|
static __inline void
|
||||||
critical_exit(void)
|
critical_exit(void)
|
||||||
{
|
{
|
||||||
_Thread_Enable_dispatch();
|
_Thread_Dispatch_enable(_Per_CPU_Get());
|
||||||
}
|
}
|
||||||
#endif /* __rtems__ */
|
#endif /* __rtems__ */
|
||||||
void init_param1(void);
|
void init_param1(void);
|
||||||
|
@@ -89,6 +89,18 @@ __FBSDID("$FreeBSD$");
|
|||||||
#include <vm/uma_dbg.h>
|
#include <vm/uma_dbg.h>
|
||||||
|
|
||||||
#include <ddb/ddb.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
|
* This is the zone and keg from which all zones are spawned. The idea is that
|
||||||
|
Reference in New Issue
Block a user