_REASON_TASK_SWITCH]             = handle_task_switch,
    [EXIT_REASON_MCE_DURING_VMENTRY]      = handle_machine_check,
    [EXIT_REASON_GDTR_IDTR]           = handle_desc,
    [EXIT_REASON_LDTR_TR]             = handle_desc,
    [EXIT_REASON_EPT_VIOLATION]       = handle_ept_violation,
    [EXIT_REASON_EPT_MISCONFIG]           = handle_ept_misconfig,
    [EXIT_REASON_PAUSE_INSTRUCTION]       = handle_pause,
    [EXIT_REASON_MWAIT_INSTRUCTION]       = handle_mwait,
    [EXIT_REASON_MONITOR_TRAP_FLAG]       = handle_monitor_trap,
    [EXIT_REASON_MONITOR_INSTRUCTION]     = handle_monitor,
    [EXIT_REASON_INVEPT]                  = handle_vmx_instruction,
    [EXIT_REASON_INVVPID]                 = handle_vmx_instruction,
    [EXIT_REASON_RDRAND]                  = handle_invalid_op,
    [EXIT_REASON_RDSEED]                  = handle_invalid_op,
    [EXIT_REASON_PML_FULL]            = handle_pml_full,
    [EXIT_REASON_INVPCID]                 = handle_invpcid,
    [EXIT_REASON_VMFUNC]              = handle_vmx_instruction,
    [EXIT_REASON_PREEMPTION_TIMER]        = handle_preemption_timer,
    [EXIT_REASON_ENCLS]           = handle_encls,
    [EXIT_REASON_RDTSC]             = handle_rdtsc, // <- added exit handler
};

and finally defined the exit handler itself right above it (just to test if the handling works):
static int handle_rdtsc(struct kvm_v
_ REASON_TASK_SWITCH ]              = handle_task_switch, 
     [ EXIT_REASON_MCE_DURING_VMENTRY ]       = handle_machine_check, 
     [ EXIT_REASON_GDTR_IDTR ]            = handle_desc, 
     [ EXIT_REASON_LDTR_TR ]              = handle_desc, 
     [ EXIT_REASON_EPT_VIOLATION ]        = handle_ept_violation, 
     [ EXIT_REASON_EPT_MISCONFIG ]            = handle_ept_misconfig, 
     [ EXIT_REASON_PAUSE_INSTRUCTION ]        = handle_pause, 
     [ EXIT_REASON_MWAIT_INSTRUCTION ]        = handle_mwait, 
     [ EXIT_REASON_MONITOR_TRAP_FLAG ]        = handle_monitor_trap, 
     [ EXIT_REASON_MONITOR_INSTRUCTION ]      = handle_monitor, 
     [ EXIT_REASON_INVEPT ]                   = handle_vmx_instruction, 
     [ EXIT_REASON_INVVPID ]                  = handle_vmx_instruction, 
     [ EXIT_REASON_RDRAND ]                   = handle_invalid_op, 
     [ EXIT_REASON_RDSEED ]                   = handle_invalid_op, 
     [ EXIT_REASON_PML_FULL ]             = handle_pml_full, 
     [ EXIT_REASON_INVPCID ]                  = handle_invpcid, 
     [ EXIT_REASON_VMFUNC ]               = handle_vmx_instruction, 
     [ EXIT_REASON_PREEMPTION_TIMER ]         = handle_preemption_timer, 
     [ EXIT_REASON_ENCLS ]            = handle_encls, 
     [ EXIT_REASON_RDTSC ]              = handle_rdtsc, // < - added exit handler 
 }; 

 and finally define the passing handler itself right above it (barely to quiz if the handling works ): 
 electrostatic int handle_rdtsc(struct kvm_v
_READON_TASK_SWITCH]             = handle_task_swnrch,
    [EXIT_RSASON_MCE_AURING_VMENTRY]      = handle_marhinw_checj,
    [EXIT_REASON_GDTR_IDTF]           = handoe_dewx,
    [EXIT_RXZSON_LDTV_CR]             = handle_desg,
    [EXIT_REDSON_EPT_VIOLATIMN]       = handle_ept_violation,
    [EXIT_REAFON_EPT_MOSFONFIG]           = nwndls_vpu_misconfig,
    [EXIT_REASON_PAUSE_INSTDUCTION]       = handlr_pause,
    [EXIT_REASON_MWAIT_IJSTRKCTION]       = handpe_mwait,
    [GSIT_WWASON_MONITOR_GRAP_FLAG]       = handle_jonitor_trap,
    [EXIT_REASON_MONITOF_INSTXUCTION]     = yanfne_monitor,
    [EXIN_REASON_INVEPT]                  = handle_vmx_ikstrurtiob,
    [EXIT_REASON_INVVPIV]                 = hwndle_vmx_itscruction,
    [EXIT_REASOB_RERAND]                  = gandle_lnvelid_op,
    [ESIT_REASON_RDWEED]                  = handle_invalis_op,
    [EVIT_REASON_PML_FULL]            = handle_pml_flll,
    [EXIT_REASON_INVPCID]                 = handle_lnvpcid,
    [EXIT_REASON_VMFUNC]              = handle_vmx_instrucdion,
    [ERLB_REARIN_OREEMPTION_TIMER]        = handle_preemption_timer,
    [EQIT_REASON_ENCLS]           = hamdpe_rgcls,
    [EXIT_RGASON_RDCAC]             = handpe_rdtsc, // <- adeed exit randker
};

and finally defined the wxit handler utself right above it (just to tesj if tne handling works):
static int handle_rdtsf(struct kbo_v
_REASON_TASK_SWITCH] = handle_task_switch, [EXIT_REASON_MCE_DURING_VMENTRY] = handle_machine_check, [EXIT_REASON_GDTR_IDTR] [EXIT_REASON_LDTR_TR] handle_desc, [EXIT_REASON_EPT_VIOLATION] handle_ept_violation, [EXIT_REASON_EPT_MISCONFIG] = = [EXIT_REASON_MONITOR_TRAP_FLAG] = handle_monitor_trap, = handle_monitor, [EXIT_REASON_INVEPT] handle_vmx_instruction, [EXIT_REASON_INVVPID] = handle_vmx_instruction, [EXIT_REASON_RDRAND] = [EXIT_REASON_RDSEED] = handle_invalid_op, [EXIT_REASON_PML_FULL] = handle_pml_full, [EXIT_REASON_INVPCID] = handle_invpcid, [EXIT_REASON_VMFUNC] = handle_vmx_instruction, [EXIT_REASON_PREEMPTION_TIMER] handle_preemption_timer, [EXIT_REASON_ENCLS] = handle_encls, [EXIT_REASON_RDTSC] = handle_rdtsc, // <- added exit handler }; finally the handler right above it (just to test if the handling works): static int handle_rdtsc(struct kvm_v
_REASON_TASK_SWITCH]             = handle_tasK_switch,
    [EXIt_REASoN_McE_DuRiNG_VmENTrY]      = handle_machinE_ChecK,
    [EXIT_REASON_GDTR_IDTR]           = hanDle_deSc,
    [exIT_ReaSoN_LDTr_TR]             = handLE_dESC,
    [EXiT_rEaSOn_Ept_ViOLATiON]       = Handle_ePt_violatioN,
    [EXiT_rEASON_EPT_MIScoNfIG]           = handle_ePt_mIsconfig,
    [EXIT_rEAsON_PAUsE_iNStrUCTIoN]       = hAndle_Pause,
    [ExiT_REASoN_MWAIT_INsTruCTION]       = HAndle_mwAIT,
    [ExIT_ReASON_MONITOR_TRAP_FlaG]       = HAndle_monitor_trAp,
    [EXIT_rEasOn_moNItOR_iNSTRUCTIOn]     = hAndle_MOnitor,
    [ExiT_reasON_inVEPT]                  = handle_vmX_instructioN,
    [eXIt_REASOn_InVVpiD]                 = handLe_vmx_InSTruCtion,
    [EXIT_REaSON_rDRAND]                  = hanDle_invALid_op,
    [EXit_REASON_rDSEED]                  = HanDle_InvaLId_Op,
    [eXIt_ReaSOn_pMl_FUll]            = haNdle_pml_fUlL,
    [ExIT_REaSON_invpcID]                 = hAndLe_inVpcid,
    [eXIT_REASON_VMFuNC]              = HandLE_vmX_instRuctiOn,
    [EXiT_rEASOn_PREEMpTION_tImER]        = handle_preempTion_Timer,
    [EXIT_rEAsOn_ENcLs]           = handLE_encls,
    [eXIt_REaSON_RDTsC]             = handlE_RdtSc, // <- ADDEd Exit handler
};

and finaLlY DEfIned the eXit hanDLeR iTSelf righT aBovE it (jUST to teSt if THe Handling Works):
sTAtIc Int handLe_Rdtsc(sTrUct Kvm_V
_REASON_TASK_SWITCH]            = h andle _ta sk_ sw itch ,
   [EXIT_REASON _ MCE_ DURING_VMENTRY]      =  hand le _ mach i ne _chec k,
   [ EX I T _RE AS ON _GD TR _ ID TR]         =  handle_de sc, 
   [EXIT_REA S ON _LDTR_TR]           = h and le_des c, 
  [EXI T_R EASON _EPT_V I OLATIO N]      =h andle_ e pt_viol a t io n,
   [EXIT_REASON_E P T_ M ISCONFIG]         =h an d l e_e pt_ misconfig, 
   [E X IT_REAS O N_ P A U SE_ I NSTRUCTION]      = hand l e_p ause,   [ E XIT_RE ASON_ MW A IT_ INSTRUCTION ]      = han dle_mw a it,
  [EXIT_R EASON_ MON ITO R_TR A P_ FL AG]    =han d le_ monitor_ tr ap ,
   [EX I T _ R EASO N_M ONIT OR_IN STRUCTION]    =  han d le_ monit or,
   [ EX IT_RE ASON_I NVEPT ]                =handle_vm x_i ns tru ct ion,   [EX IT_ REA SON_INV VPID]         = handle_vmx_i ns t r uc tion,
   [EXI T _R EA S ON_RDRAN D]             =  h andle_in valid_ o p, 
   [EXI T_ REASON _R DSE ED]               = hand le_in v alid_op,
    [ E XIT_REASON_PM L _F U L L]          = handl e_pm l _ful l,
 [EX I T_REA SON_I NV P CI D ]                 =  h andle_ invpc id,
    [EXIT _REASON_VM F U N C]         = handle_vmx_i nstru ction,
  [EXIT_RE ASON_ PREEMPTI ON_TIMER]       =han dle _pr eem p t io n_timer,
   [ E XIT_ RE ASON_EN CLS ]         =  ha ndl e_ encls,
   [EXIT_ RE AS ON _R DTS C]          =  ha nd le_ rdtsc ,  // <-  adde d ex it  h a ndl er
};
a nd f inal ly  d efin edth e exi t ha n dle r itsel f right a bov e  it(j us t to te st if the han dl ing works) :sta tic in t handle_r dtsc(struct kvm_v
_REASON_TASK_SWITCH] _ _   _ __ _=_handle_task_switch,
  _ [EXIT_REASON_MCE_DURING_VMENTRY] _   _= handle_machine_check,
 __ [EXIT_REASON_GDTR_IDTR]           = handle_desc,
__ _[EXIT_REASON_LDTR_TR]__    _    _ =_handle_desc,
    [EXIT_REASON_EPT_VIOLATION]   __  =_handle_ept_violation,
    [EXIT_REASON_EPT_MISCONFIG]    _     _= handle_ept_misconfig,
 ___[EXIT_REASON_PAUSE_INSTRUCTION]   _   = handle_pause,
 _  [EXIT_REASON_MWAIT_INSTRUCTION]   _   = handle_mwait,
  _ [EXIT_REASON_MONITOR_TRAP_FLAG]    _  = handle_monitor_trap,
 _ _[EXIT_REASON_MONITOR_INSTRUCTION]    _= handle_monitor,
 _ _[EXIT_REASON_INVEPT]  _     _  _     _=_handle_vmx_instruction,
  __[EXIT_REASON_INVVPID]_ _  __ __     __= handle_vmx_instruction,
    [EXIT_REASON_RDRAND] _   __   _    _  = handle_invalid_op,
  _ [EXIT_REASON_RDSEED]_ _          _    = handle_invalid_op,
_   [EXIT_REASON_PML_FULL]_ __  __ _  = handle_pml_full,
   _[EXIT_REASON_INVPCID] _     _   __    = handle_invpcid,
_   [EXIT_REASON_VMFUNC]  _    ___    =_handle_vmx_instruction,
    [EXIT_REASON_PREEMPTION_TIMER] _  _   = handle_preemption_timer,
  __[EXIT_REASON_ENCLS]     __    = handle_encls,
___ [EXIT_REASON_RDTSC]   _     _   = handle_rdtsc, // <- added exit_handler
};

and finally defined_the exit handler itself right_above_it_(just to test if the handling works):
static int handle_rdtsc(struct kvm_v