mirror of
https://git.rtems.org/rtems-libbsd/
synced 2025-07-23 19:56:24 +08:00
Fix sporadic test failures via uma_timeout()
This commit is contained in:
parent
94b5368388
commit
6fb003f588
@ -695,4 +695,7 @@ struct uma_percpu_stat {
|
|||||||
void uma_reclaim_wakeup(void);
|
void uma_reclaim_wakeup(void);
|
||||||
void uma_reclaim_worker(void *);
|
void uma_reclaim_worker(void *);
|
||||||
|
|
||||||
|
#ifdef __rtems__
|
||||||
|
void rtems_uma_drain_timeout(void);
|
||||||
|
#endif /* __rtems__ */
|
||||||
#endif /* _VM_UMA_H_ */
|
#endif /* _VM_UMA_H_ */
|
||||||
|
@ -3814,3 +3814,15 @@ DB_SHOW_COMMAND(umacache, db_show_umacache)
|
|||||||
}
|
}
|
||||||
#endif /* DDB */
|
#endif /* DDB */
|
||||||
#endif /* __rtems__ */
|
#endif /* __rtems__ */
|
||||||
|
#ifdef __rtems__
|
||||||
|
/*
|
||||||
|
* This is a helper routine for test programs. The uma_timeout() may need some
|
||||||
|
* dynamic memory. This could disturb out of memory tests.
|
||||||
|
*/
|
||||||
|
void
|
||||||
|
rtems_uma_drain_timeout(void)
|
||||||
|
{
|
||||||
|
|
||||||
|
callout_drain(&uma_callout);
|
||||||
|
}
|
||||||
|
#endif /* __rtems__ */
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2013 embedded brains GmbH. All rights reserved.
|
* Copyright (c) 2013, 2018 embedded brains GmbH. All rights reserved.
|
||||||
*
|
*
|
||||||
* embedded brains GmbH
|
* embedded brains GmbH
|
||||||
* Dornierstr. 4
|
* Dornierstr. 4
|
||||||
@ -38,6 +38,7 @@
|
|||||||
#include <sys/socket.h>
|
#include <sys/socket.h>
|
||||||
#include <sys/time.h>
|
#include <sys/time.h>
|
||||||
#include <sys/filio.h>
|
#include <sys/filio.h>
|
||||||
|
#include <vm/uma.h>
|
||||||
#include <netinet/in.h>
|
#include <netinet/in.h>
|
||||||
#include <arpa/inet.h>
|
#include <arpa/inet.h>
|
||||||
#include <err.h>
|
#include <err.h>
|
||||||
@ -1599,23 +1600,15 @@ test_setgethostname(void)
|
|||||||
assert(in[sizeof(in) - 1] == '\0');
|
assert(in[sizeof(in) - 1] == '\0');
|
||||||
}
|
}
|
||||||
|
|
||||||
static void set_self_prio(rtems_task_priority prio)
|
|
||||||
{
|
|
||||||
rtems_status_code sc;
|
|
||||||
|
|
||||||
sc = rtems_task_set_priority(RTEMS_SELF, prio, &prio);
|
|
||||||
assert(sc == RTEMS_SUCCESSFUL);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
test_main(void)
|
test_main(void)
|
||||||
{
|
{
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* No interruptions by the timer server. The uma_timeout() may need
|
* Stop interferences of uma_timeout() which may need some dynamic
|
||||||
* some dynamic memory. This could disturb the no memory tests.
|
* memory. This could disturb the no memory tests.
|
||||||
*/
|
*/
|
||||||
set_self_prio(1);
|
rtems_uma_drain_timeout();
|
||||||
|
|
||||||
/* Must be first test to ensure resource checks work */
|
/* Must be first test to ensure resource checks work */
|
||||||
test_sockets();
|
test_sockets();
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2013-2014 embedded brains GmbH. All rights reserved.
|
* Copyright (c) 2013, 2018 embedded brains GmbH. All rights reserved.
|
||||||
*
|
*
|
||||||
* embedded brains GmbH
|
* embedded brains GmbH
|
||||||
* Dornierstr. 4
|
* Dornierstr. 4
|
||||||
@ -43,6 +43,8 @@
|
|||||||
#include <sys/kthread.h>
|
#include <sys/kthread.h>
|
||||||
#include <sys/errno.h>
|
#include <sys/errno.h>
|
||||||
|
|
||||||
|
#include <vm/uma.h>
|
||||||
|
|
||||||
#include <rtems/bsd/bsd.h>
|
#include <rtems/bsd/bsd.h>
|
||||||
|
|
||||||
#include <rtems.h>
|
#include <rtems.h>
|
||||||
@ -284,8 +286,15 @@ test_rtems_bsd_get_curthread_or_null(void)
|
|||||||
static void
|
static void
|
||||||
test_main(void)
|
test_main(void)
|
||||||
{
|
{
|
||||||
|
|
||||||
main_task_id = rtems_task_self();
|
main_task_id = rtems_task_self();
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Stop interferences of uma_timeout() which may need some dynamic
|
||||||
|
* memory. This could disturb the no memory tests.
|
||||||
|
*/
|
||||||
|
rtems_uma_drain_timeout();
|
||||||
|
|
||||||
test_non_bsd_thread();
|
test_non_bsd_thread();
|
||||||
test_kproc_start();
|
test_kproc_start();
|
||||||
test_kthread_start();
|
test_kthread_start();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user