Kernel 6.0 support
This patch introduces kernel 6.0 support for Open CAS Signed-off-by: Krzysztof Majzerowicz-Jaszcz <krzysztof.majzerowicz-jaszcz@intel.com>
This commit is contained in:
parent
4bf7bbdd25
commit
f1bf2eb909
45
configure.d/1_cleanup_disk.conf
Normal file
45
configure.d/1_cleanup_disk.conf
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# Copyright(c) 2012-2022 Intel Corporation
|
||||||
|
# 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 "blk_cleanup_disk(NULL);" "linux/blk-mq.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 void cas_cleanup_disk(struct gendisk *gd)
|
||||||
|
{
|
||||||
|
blk_cleanup_disk(gd);
|
||||||
|
}"
|
||||||
|
;;
|
||||||
|
|
||||||
|
"2")
|
||||||
|
|
||||||
|
add_function "
|
||||||
|
static inline void cas_cleanup_disk(struct gendisk *gd)
|
||||||
|
{
|
||||||
|
put_disk(gd);
|
||||||
|
}"
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
exit 1
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
conf_run $@
|
45
configure.d/1_cleanup_queue.conf
Normal file
45
configure.d/1_cleanup_queue.conf
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# Copyright(c) 2012-2022 Intel Corporation
|
||||||
|
# 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 "blk_cleanup_queue(NULL);" "linux/blk-mq.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 void cas_cleanup_queue(struct request_queue *q)
|
||||||
|
{
|
||||||
|
blk_cleanup_queue(q);
|
||||||
|
}"
|
||||||
|
;;
|
||||||
|
|
||||||
|
"2")
|
||||||
|
|
||||||
|
add_function "
|
||||||
|
static inline void cas_cleanup_queue(struct request_queue *q)
|
||||||
|
{
|
||||||
|
blk_mq_destroy_queue(q);
|
||||||
|
}"
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
exit 1
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
conf_run $@
|
46
configure.d/1_has_discard_support.conf
Normal file
46
configure.d/1_has_discard_support.conf
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# Copyright(c) 2012-2022 Intel Corporation
|
||||||
|
# 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 "struct request_queue q;blk_queue_discard(&q);" "linux/blk-mq.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_has_discard_support(struct block_device *bd)
|
||||||
|
{
|
||||||
|
struct request_queue *q = bdev_get_queue(bd);
|
||||||
|
return (int)blk_queue_discard(q);
|
||||||
|
}"
|
||||||
|
;;
|
||||||
|
|
||||||
|
"2")
|
||||||
|
|
||||||
|
add_function "
|
||||||
|
static inline int cas_has_discard_support(struct block_device *bd)
|
||||||
|
{
|
||||||
|
return !!bdev_max_discard_sectors(bd);
|
||||||
|
}"
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
exit 1
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
conf_run $@
|
@ -36,7 +36,7 @@ apply() {
|
|||||||
add_function "
|
add_function "
|
||||||
static inline void cas_cleanup_mq_disk(struct cas_exp_obj *exp_obj)
|
static inline void cas_cleanup_mq_disk(struct cas_exp_obj *exp_obj)
|
||||||
{
|
{
|
||||||
blk_cleanup_disk(exp_obj->gd);
|
cas_cleanup_disk(exp_obj->gd);
|
||||||
}"
|
}"
|
||||||
;;
|
;;
|
||||||
|
|
45
configure.d/2_set_discard_flag.conf
Normal file
45
configure.d/2_set_discard_flag.conf
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# Copyright(c) 2012-2022 Intel Corporation
|
||||||
|
# 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 "QUEUE_FLAG_DISCARD;" "linux/blk-mq.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 void cas_set_discard_flag(struct request_queue *q)
|
||||||
|
{
|
||||||
|
CAS_QUEUE_FLAG_SET(QUEUE_FLAG_DISCARD, q);
|
||||||
|
}"
|
||||||
|
;;
|
||||||
|
|
||||||
|
"2")
|
||||||
|
|
||||||
|
add_function "
|
||||||
|
static inline void cas_set_discard_flag(struct request_queue *q)
|
||||||
|
{
|
||||||
|
(void)q;
|
||||||
|
}"
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
exit 1
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
conf_run $@
|
@ -535,7 +535,7 @@ int cas_exp_obj_destroy(struct cas_disk *dsk)
|
|||||||
del_gendisk(exp_obj->gd);
|
del_gendisk(exp_obj->gd);
|
||||||
|
|
||||||
if (exp_obj->queue)
|
if (exp_obj->queue)
|
||||||
blk_cleanup_queue(exp_obj->queue);
|
cas_cleanup_queue(exp_obj->queue);
|
||||||
|
|
||||||
blk_mq_free_tag_set(&exp_obj->tag_set);
|
blk_mq_free_tag_set(&exp_obj->tag_set);
|
||||||
|
|
||||||
|
@ -218,7 +218,7 @@ void block_dev_submit_discard(struct ocf_io *io)
|
|||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!blk_queue_discard(q)) {
|
if (!cas_has_discard_support(bd)) {
|
||||||
/* Discard is not supported by bottom device, send completion
|
/* Discard is not supported by bottom device, send completion
|
||||||
* to caller
|
* to caller
|
||||||
*/
|
*/
|
||||||
|
@ -64,10 +64,10 @@ static void blkdev_set_discard_properties(ocf_cache_t cache,
|
|||||||
core_q = bdev_get_queue(core_bd);
|
core_q = bdev_get_queue(core_bd);
|
||||||
cache_q = bdev_get_queue(cache_bd);
|
cache_q = bdev_get_queue(cache_bd);
|
||||||
|
|
||||||
CAS_QUEUE_FLAG_SET(QUEUE_FLAG_DISCARD, exp_q);
|
cas_set_discard_flag(exp_q);
|
||||||
|
|
||||||
CAS_SET_DISCARD_ZEROES_DATA(exp_q->limits, 0);
|
CAS_SET_DISCARD_ZEROES_DATA(exp_q->limits, 0);
|
||||||
if (core_q && blk_queue_discard(core_q)) {
|
if (core_q && cas_has_discard_support(core_bd)) {
|
||||||
blk_queue_max_discard_sectors(exp_q, core_q->limits.max_discard_sectors);
|
blk_queue_max_discard_sectors(exp_q, core_q->limits.max_discard_sectors);
|
||||||
exp_q->limits.discard_alignment =
|
exp_q->limits.discard_alignment =
|
||||||
bdev_discard_alignment(core_bd);
|
bdev_discard_alignment(core_bd);
|
||||||
|
Loading…
Reference in New Issue
Block a user