Merge pull request #1646 from mmichal10/configure-preempt
configure: add preemption_model_*() functions
This commit is contained in:
commit
3c19caae1e
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
|
#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
|
printk(KERN_WARNING OCF_PREFIX_SHORT
|
||||||
"The kernel has been compiled with preemption configurable\n"
|
"The kernel has been compiled with preemption configurable\n"
|
||||||
"at boot time (PREEMPT_DYNAMIC=y). Open CAS doesn't support\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"
|
"\"preempt=\" to \"none\" or \"voluntary\" in the kernel"
|
||||||
" command line\n");
|
" 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
|
printk(KERN_ERR OCF_PREFIX_SHORT
|
||||||
"The kernel has been booted with involuntary "
|
"The kernel has been booted with involuntary "
|
||||||
"preemption enabled.\nFailed to load Open CAS kernel "
|
"preemption enabled.\nFailed to load Open CAS kernel "
|
||||||
|
Loading…
Reference in New Issue
Block a user