configure: Update generic_acct wrapper to kernel 5.8
Signed-off-by: Robert Baldyga <robert.baldyga@intel.com>
This commit is contained in:
parent
fb86060592
commit
bbd0cb57a5
@ -9,18 +9,21 @@
|
||||
check() {
|
||||
cur_name=$(basename $2)
|
||||
config_file_path=$1
|
||||
if compile_module $cur_name "generic_start_io_acct(NULL, 0, 0, NULL)" "linux/bio.h"
|
||||
if compile_module $cur_name "bio_start_io_acct(NULL)" "linux/blkdev.h"
|
||||
then
|
||||
echo $cur_name "1" >> $config_file_path
|
||||
elif compile_module $cur_name "generic_start_io_acct(0, 0, NULL)" "linux/bio.h"
|
||||
elif compile_module $cur_name "generic_start_io_acct(NULL, 0, 0, NULL)" "linux/bio.h"
|
||||
then
|
||||
echo $cur_name "2" >> $config_file_path
|
||||
elif compile_module $cur_name "part_round_stats(1, 1)" "linux/genhd.h"
|
||||
elif compile_module $cur_name "generic_start_io_acct(0, 0, NULL)" "linux/bio.h"
|
||||
then
|
||||
echo $cur_name "3" >> $config_file_path
|
||||
elif compile_module $cur_name "part_round_stats(NULL, 1, 1)" "linux/genhd.h"
|
||||
elif compile_module $cur_name "part_round_stats(1, 1)" "linux/genhd.h"
|
||||
then
|
||||
echo $cur_name "4" >> $config_file_path
|
||||
elif compile_module $cur_name "part_round_stats(NULL, 1, 1)" "linux/genhd.h"
|
||||
then
|
||||
echo $cur_name "5" >> $config_file_path
|
||||
else
|
||||
echo $cur_name "X" >> $config_file_path
|
||||
fi
|
||||
@ -29,79 +32,111 @@ check() {
|
||||
apply() {
|
||||
case "$1" in
|
||||
"1")
|
||||
add_function "
|
||||
static inline void cas_generic_start_io_acct(struct request_queue *q,
|
||||
int rw, unsigned long sectors, struct hd_struct *part) {
|
||||
generic_start_io_acct(q, rw, sectors, part);
|
||||
}"
|
||||
add_function "
|
||||
static inline void cas_generic_end_io_acct(struct request_queue *q,
|
||||
int rw, struct hd_struct *part, unsigned long start_time)
|
||||
{
|
||||
generic_end_io_acct(q, rw, part, start_time);
|
||||
}" ;;
|
||||
add_function "
|
||||
static inline unsigned long long cas_generic_start_io_acct(
|
||||
struct request_queue *q, struct bio *bio,
|
||||
struct hd_struct *part)
|
||||
{
|
||||
return bio_start_io_acct(bio);
|
||||
}"
|
||||
add_function "
|
||||
static inline void cas_generic_end_io_acct(struct request_queue *q,
|
||||
struct bio *bio, struct hd_struct *part,
|
||||
unsigned long start_time)
|
||||
{
|
||||
bio_end_io_acct(bio, start_time);
|
||||
}" ;;
|
||||
"2")
|
||||
add_function "
|
||||
static inline void cas_generic_start_io_acct(struct request_queue *q,
|
||||
int rw, unsigned long sectors, struct hd_struct *part)
|
||||
{
|
||||
generic_start_io_acct(rw, sectors, part);
|
||||
}"
|
||||
add_function "
|
||||
static inline void cas_generic_end_io_acct(struct request_queue *q,
|
||||
int rw, struct hd_struct *part, unsigned long start_time)
|
||||
{
|
||||
generic_end_io_acct(rw, part, start_time);
|
||||
}" ;;
|
||||
"3")
|
||||
add_function "
|
||||
static inline void cas_generic_start_io_acct(struct request_queue *q,
|
||||
int rw, unsigned long sectors, struct hd_struct *part)
|
||||
{
|
||||
int cpu = part_stat_lock();
|
||||
part_round_stats(cpu, part);
|
||||
part_stat_inc(cpu, part, ios[rw]);
|
||||
part_stat_add(cpu, part, sectors[rw], sectors);
|
||||
part_inc_in_flight(part, rw);
|
||||
part_stat_unlock();
|
||||
}"
|
||||
add_function "
|
||||
static inline void cas_generic_end_io_acct(struct request_queue *q,
|
||||
int rw, struct hd_struct *part, unsigned long start_time)
|
||||
{
|
||||
unsigned long duration = jiffies - start_time;
|
||||
int cpu = part_stat_lock();
|
||||
part_stat_add(cpu, part, ticks[rw], duration);
|
||||
part_round_stats(cpu, part);
|
||||
part_dec_in_flight(part, rw);
|
||||
part_stat_unlock();
|
||||
}" ;;
|
||||
"4")
|
||||
add_function "
|
||||
static inline void cas_generic_start_io_acct(struct request_queue *q,
|
||||
int rw, unsigned long sectors, struct hd_struct *part)
|
||||
{
|
||||
int cpu = part_stat_lock();
|
||||
part_round_stats(NULL, cpu, part);
|
||||
part_stat_inc(cpu, part, ios[rw]);
|
||||
part_stat_add(cpu, part, sectors[rw], sectors);
|
||||
part_inc_in_flight(NULL, part, rw);
|
||||
part_stat_unlock();
|
||||
}"
|
||||
add_function "
|
||||
static inline void cas_generic_end_io_acct(struct request_queue *q,
|
||||
int rw, struct hd_struct *part, unsigned long start_time)
|
||||
{
|
||||
unsigned long duration = jiffies - start_time;
|
||||
int cpu = part_stat_lock();
|
||||
part_stat_add(cpu, part, ticks[rw], duration);
|
||||
part_round_stats(NULL, cpu, part);
|
||||
part_dec_in_flight(NULL, part, rw);
|
||||
part_stat_unlock();
|
||||
}" ;;
|
||||
*)
|
||||
add_function "
|
||||
static inline unsigned long long cas_generic_start_io_acct(
|
||||
struct request_queue *q, struct bio *bio,
|
||||
struct hd_struct *part)
|
||||
{
|
||||
generic_start_io_acct(q, bio_data_dir(bio), bio_sectors(bio), part);
|
||||
return jiffies;
|
||||
}"
|
||||
add_function "
|
||||
static inline void cas_generic_end_io_acct(struct request_queue *q,
|
||||
struct bio *bio, struct hd_struct *part,
|
||||
unsigned long start_time)
|
||||
{
|
||||
generic_end_io_acct(q, bio_data_dir(bio), part, start_time);
|
||||
}" ;;
|
||||
"3")
|
||||
add_function "
|
||||
static inline unsigned long long cas_generic_start_io_acct(
|
||||
struct request_queue *q, struct bio *bio,
|
||||
struct hd_struct *part)
|
||||
{
|
||||
generic_start_io_acct(bio_data_dir(bio), bio_sectors(bio), part);
|
||||
return jiffies;
|
||||
}"
|
||||
add_function "
|
||||
static inline void cas_generic_end_io_acct(struct request_queue *q,
|
||||
struct bio *bio, struct hd_struct *part,
|
||||
unsigned long start_time)
|
||||
{
|
||||
generic_end_io_acct(bio_data_dir(bio), part, start_time);
|
||||
}" ;;
|
||||
"4")
|
||||
add_function "
|
||||
static inline unsigned long long cas_generic_start_io_acct(
|
||||
struct request_queue *q, struct bio *bio,
|
||||
struct hd_struct *part)
|
||||
{
|
||||
int rw = bio_data_dir(bio);
|
||||
int cpu = part_stat_lock();
|
||||
part_round_stats(cpu, part);
|
||||
part_stat_inc(cpu, part, ios[rw]);
|
||||
part_stat_add(cpu, part, sectors[rw], bio_sectors(bio));
|
||||
part_inc_in_flight(part, rw);
|
||||
part_stat_unlock();
|
||||
return jiffies;
|
||||
}"
|
||||
add_function "
|
||||
static inline void cas_generic_end_io_acct(struct request_queue *q,
|
||||
struct bio *bio, struct hd_struct *part,
|
||||
unsigned long start_time)
|
||||
{
|
||||
int rw = bio_data_dir(bio);
|
||||
unsigned long duration = jiffies - start_time;
|
||||
int cpu = part_stat_lock();
|
||||
part_stat_add(cpu, part, ticks[rw], duration);
|
||||
part_round_stats(cpu, part);
|
||||
part_dec_in_flight(part, rw);
|
||||
part_stat_unlock();
|
||||
}" ;;
|
||||
"5")
|
||||
add_function "
|
||||
static inline unsigned long long cas_generic_start_io_acct(
|
||||
struct request_queue *q, struct bio *bio,
|
||||
struct hd_struct *part)
|
||||
{
|
||||
int rw = bio_data_dir(bio);
|
||||
int cpu = part_stat_lock();
|
||||
part_round_stats(NULL, cpu, part);
|
||||
part_stat_inc(cpu, part, ios[rw]);
|
||||
part_stat_add(cpu, part, sectors[rw], bio_sectors(bio));
|
||||
part_inc_in_flight(NULL, part, rw);
|
||||
part_stat_unlock();
|
||||
return jiffies;
|
||||
}"
|
||||
add_function "
|
||||
static inline void cas_generic_end_io_acct(struct request_queue *q,
|
||||
struct bio *bio, struct hd_struct *part,
|
||||
unsigned long start_time)
|
||||
{
|
||||
int rw = bio_data_dir(bio);
|
||||
unsigned long duration = jiffies - start_time;
|
||||
int cpu = part_stat_lock();
|
||||
part_stat_add(cpu, part, ticks[rw], duration);
|
||||
part_round_stats(NULL, cpu, part);
|
||||
part_dec_in_flight(NULL, part, rw);
|
||||
part_stat_unlock();
|
||||
}" ;;
|
||||
*)
|
||||
exit 1
|
||||
esac
|
||||
esac
|
||||
}
|
||||
|
||||
conf_run $@
|
||||
|
@ -57,12 +57,11 @@ static void _blockdev_set_bio_data(struct blk_data *data, struct bio *bio)
|
||||
#endif
|
||||
}
|
||||
|
||||
static inline void _blockdev_start_io_acct(struct bio *bio)
|
||||
static inline unsigned long long _blockdev_start_io_acct(struct bio *bio)
|
||||
{
|
||||
struct gendisk *gd = CAS_BIO_GET_DEV(bio);
|
||||
|
||||
cas_generic_start_io_acct(gd->queue, bio_data_dir(bio),
|
||||
bio_sectors(bio), &gd->part0);
|
||||
return cas_generic_start_io_acct(gd->queue, bio, &gd->part0);
|
||||
}
|
||||
|
||||
static inline void _blockdev_end_io_acct(struct bio *bio,
|
||||
@ -70,8 +69,7 @@ static inline void _blockdev_end_io_acct(struct bio *bio,
|
||||
{
|
||||
struct gendisk *gd = CAS_BIO_GET_DEV(bio);
|
||||
|
||||
cas_generic_end_io_acct(gd->queue, bio_data_dir(bio),
|
||||
&gd->part0, start_time);
|
||||
cas_generic_end_io_acct(gd->queue, bio, &gd->part0, start_time);
|
||||
}
|
||||
|
||||
void block_dev_start_bio_fast(struct ocf_io *io)
|
||||
@ -79,7 +77,7 @@ void block_dev_start_bio_fast(struct ocf_io *io)
|
||||
struct blk_data *data = ocf_io_get_data(io);
|
||||
struct bio *bio = data->master_io_req;
|
||||
|
||||
_blockdev_start_io_acct(bio);
|
||||
data->start_time = _blockdev_start_io_acct(bio);
|
||||
}
|
||||
|
||||
void block_dev_complete_bio_fast(struct ocf_io *io, int error)
|
||||
@ -761,7 +759,6 @@ static int _blockdev_make_request_fast(struct casdsk_disk *dsk,
|
||||
_blockdev_set_bio_data(data, bio);
|
||||
|
||||
data->master_io_req = bio;
|
||||
data->start_time = jiffies;
|
||||
|
||||
io = ocf_core_new_io(core, cache_priv->io_queues[smp_processor_id()],
|
||||
CAS_BIO_BISECTOR(bio) << SECTOR_SHIFT,
|
||||
|
Loading…
Reference in New Issue
Block a user