Merge pull request #21 from micrakow/add_configure_script
Add configure script
This commit is contained in:
commit
9a89023533
106
configure
vendored
Executable file
106
configure
vendored
Executable file
@ -0,0 +1,106 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# Copyright(c) 2012-2019 Intel Corporation
|
||||||
|
# SPDX-License-Identifier: BSD-3-Clause-Clear
|
||||||
|
#
|
||||||
|
|
||||||
|
MODULE_FILE=test_mod.c
|
||||||
|
OBJ_MOD=test_mod.o
|
||||||
|
KERN_VER=`uname -r`
|
||||||
|
PWD=`pwd`
|
||||||
|
NPROC=`nproc`
|
||||||
|
DEFINE_FILE=modules/generated_defines.h
|
||||||
|
|
||||||
|
|
||||||
|
add_define() {
|
||||||
|
echo -n "#define " >> $DEFINE_FILE
|
||||||
|
for arg in "$@"; do
|
||||||
|
echo -e "$arg" >> $DEFINE_FILE
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
add_function() {
|
||||||
|
for arg in "$@"; do
|
||||||
|
echo -e "$arg" >> $DEFINE_FILE
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
compile_module(){
|
||||||
|
if [ $# -gt 1 ]
|
||||||
|
then
|
||||||
|
INCLUDE="#include <$2>"
|
||||||
|
else
|
||||||
|
INCLUDE=""
|
||||||
|
fi
|
||||||
|
|
||||||
|
############# TEST MODULE #############
|
||||||
|
cat > $MODULE_FILE << EOF
|
||||||
|
#include <linux/module.h>
|
||||||
|
#include <linux/kernel.h>
|
||||||
|
$INCLUDE
|
||||||
|
|
||||||
|
int init_module(void) {
|
||||||
|
$1;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
void cleanup_module(void) {};
|
||||||
|
EOF
|
||||||
|
#######################################
|
||||||
|
|
||||||
|
make -C /lib/modules/$KERN_VER/build M=$PWD modules\
|
||||||
|
obj-m=$OBJ_MOD -j$NPROC &> /dev/null
|
||||||
|
|
||||||
|
local ret=$?
|
||||||
|
if [ $ret -eq 0 ]; then
|
||||||
|
make -j$NPROC -C /lib/modules/$KERN_VER/build M=$PWD clean\
|
||||||
|
obj-m=test.o &> /dev/null
|
||||||
|
fi
|
||||||
|
|
||||||
|
return $ret
|
||||||
|
}
|
||||||
|
|
||||||
|
kernel_not_supp_fail() {
|
||||||
|
echo "Current kernel is not supported!"
|
||||||
|
rm $DEFINE_FILE
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
rm -f $DEFINE_FILE
|
||||||
|
|
||||||
|
compile_module "part_round_stats(1, 1)" "linux/genhd.h"
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
add_define "CAS_PART_ROUND_STATS(q, cpu, part) part_round_stats(cpu, part)"
|
||||||
|
else
|
||||||
|
compile_module "part_round_stats(NULL, 1, 1)" "linux/genhd.h"
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
add_define "CAS_PART_ROUND_STATS(q, cpu, part)\\"\
|
||||||
|
"\tpart_round_stats(q, cpu, part)"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
compile_module "part_inc_in_flight(1, 1)" "linux/genhd.h"
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
add_define "CAS_PART_INC_IN_FLIGHT(q, cpu, part)\\"\
|
||||||
|
"\tpart_inc_in_flight(cpu, part)"
|
||||||
|
else
|
||||||
|
compile_module "part_inc_in_flight(NULL, 1, 1)" "linux/genhd.h"
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
add_define "CAS_PART_INC_IN_FLIGHT(q, cpu, part)\\"\
|
||||||
|
"\tpart_inc_in_flight(q, cpu, part)"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
compile_module "part_dec_in_flight(1, 1)" "linux/genhd.h"
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
add_define "CAS_PART_DEC_IN_FLIGHT(q, cpu, part)\\"\
|
||||||
|
"\tpart_dec_in_flight(cpu, part)"
|
||||||
|
else
|
||||||
|
compile_module "part_dec_in_flight(NULL, 1, 1)" "linux/genhd.h"
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
add_define "CAS_PART_DEC_IN_FLIGHT(q, cpu, part)\\"\
|
||||||
|
"\tpart_dec_in_flight(q, cpu, part)"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
@ -47,7 +47,7 @@ default: $(VERSION_FILE) sync
|
|||||||
|
|
||||||
clean:
|
clean:
|
||||||
cd $(KERNEL_DIR) && make M=$(PWD) clean
|
cd $(KERNEL_DIR) && make M=$(PWD) clean
|
||||||
|
rm $(PWD)/generated_defines.h
|
||||||
distclean: clean distsync
|
distclean: clean distsync
|
||||||
|
|
||||||
install:
|
install:
|
||||||
|
@ -38,6 +38,8 @@
|
|||||||
#include <linux/nmi.h>
|
#include <linux/nmi.h>
|
||||||
#include <linux/ratelimit.h>
|
#include <linux/ratelimit.h>
|
||||||
|
|
||||||
|
#include "generated_defines.h"
|
||||||
|
|
||||||
#ifdef CONFIG_SLAB
|
#ifdef CONFIG_SLAB
|
||||||
#include <linux/slab_def.h>
|
#include <linux/slab_def.h>
|
||||||
#endif
|
#endif
|
||||||
@ -503,10 +505,10 @@ static inline void cas_generic_start_io_acct(struct request_queue *q,
|
|||||||
{
|
{
|
||||||
int cpu = part_stat_lock();
|
int cpu = part_stat_lock();
|
||||||
|
|
||||||
part_round_stats(cpu, part);
|
CAS_PART_ROUND_STATS(q, cpu, part);
|
||||||
part_stat_inc(cpu, part, ios[rw]);
|
part_stat_inc(cpu, part, ios[rw]);
|
||||||
part_stat_add(cpu, part, sectors[rw], sectors);
|
part_stat_add(cpu, part, sectors[rw], sectors);
|
||||||
part_inc_in_flight(part, rw);
|
CAS_PART_INC_IN_FLIGHT(q, part, rw);
|
||||||
|
|
||||||
part_stat_unlock();
|
part_stat_unlock();
|
||||||
}
|
}
|
||||||
@ -518,8 +520,8 @@ static inline void cas_generic_end_io_acct(struct request_queue *q,
|
|||||||
int cpu = part_stat_lock();
|
int cpu = part_stat_lock();
|
||||||
|
|
||||||
part_stat_add(cpu, part, ticks[rw], duration);
|
part_stat_add(cpu, part, ticks[rw], duration);
|
||||||
part_round_stats(cpu, part);
|
CAS_PART_ROUND_STATS(q, cpu, part);
|
||||||
part_dec_in_flight(part, rw);
|
CAS_PART_DEC_IN_FLIGHT(q, part, rw);
|
||||||
|
|
||||||
part_stat_unlock();
|
part_stat_unlock();
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user