configure: add preemption_model_*() functions
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
This commit is contained in:
parent
73cd065bfb
commit
f46de38db0
52
configure.d/1_preempt_model.conf
Normal file
52
configure.d/1_preempt_model.conf
Normal file
@ -0,0 +1,52 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Copyright(c) 2025 Huawei Technologies
|
||||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
#
|
||||
|
||||
. $(dirname $3)/conf_framework.sh
|
||||
|
||||
check() {
|
||||
cur_name=$(basename $2)
|
||||
config_file_path=$1
|
||||
if compile_module $cur_name "preempt_model_voluntary();" "linux/preempt.h" &&
|
||||
compile_module $cur_name "preempt_model_none();" "linux/preempt.h"
|
||||
then
|
||||
echo $cur_name "1" >> $config_file_path
|
||||
else
|
||||
echo $cur_name "2" >> $config_file_path
|
||||
fi
|
||||
}
|
||||
|
||||
apply() {
|
||||
case "$1" in
|
||||
"1")
|
||||
add_function "
|
||||
static inline int cas_preempt_model_voluntary(void)
|
||||
{
|
||||
return preempt_model_voluntary();
|
||||
}"
|
||||
add_function "
|
||||
static inline int cas_preempt_model_none(void)
|
||||
{
|
||||
return preempt_model_none();
|
||||
}" ;;
|
||||
|
||||
"2")
|
||||
add_function "
|
||||
static inline int cas_preempt_model_voluntary(void)
|
||||
{
|
||||
return IS_ENABLED(CONFIG_PREEMPT_VOLUNTARY);
|
||||
}"
|
||||
add_function "
|
||||
static inline int cas_preempt_model_none(void)
|
||||
{
|
||||
return IS_ENABLED(CONFIG_PREEMPT_NONE);
|
||||
}" ;;
|
||||
|
||||
*)
|
||||
exit 1
|
||||
esac
|
||||
}
|
||||
|
||||
conf_run $@
|
@ -65,9 +65,6 @@ static inline uint32_t involuntary_preemption_enabled(void)
|
||||
}
|
||||
|
||||
#ifdef CONFIG_PREEMPT_DYNAMIC
|
||||
/* preempt_model_none() or preempt_model_voluntary() are not defined if
|
||||
* the kernel has been compiled without PREEMPT_DYNAMIC
|
||||
*/
|
||||
printk(KERN_WARNING OCF_PREFIX_SHORT
|
||||
"The kernel has been compiled with preemption configurable\n"
|
||||
"at boot time (PREEMPT_DYNAMIC=y). Open CAS doesn't support\n"
|
||||
@ -75,7 +72,7 @@ static inline uint32_t involuntary_preemption_enabled(void)
|
||||
"\"preempt=\" to \"none\" or \"voluntary\" in the kernel"
|
||||
" command line\n");
|
||||
|
||||
if (!preempt_model_none() && !preempt_model_voluntary()) {
|
||||
if (!cas_preempt_model_none() && !cas_preempt_model_voluntary()) {
|
||||
printk(KERN_ERR OCF_PREFIX_SHORT
|
||||
"The kernel has been booted with involuntary "
|
||||
"preemption enabled.\nFailed to load Open CAS kernel "
|
||||
|
Loading…
Reference in New Issue
Block a user