Quellcodebibliothek Statistik Leitseite products/sources/formale Sprachen/C/Linux/arch/powerpc/kvm/   (Open Source Betriebssystem Version 6.17.9©)  Datei vom 24.10.2025 mit Größe 2 kB image not shown  

Quelle  timing.h   Sprache: C

 
/* SPDX-License-Identifier: GPL-2.0-only */
/*
 *
 * Copyright IBM Corp. 2008
 *
 * Authors: Christian Ehrhardt <ehrhardt@linux.vnet.ibm.com>
 */


#ifndef __POWERPC_KVM_EXITTIMING_H__
#define __POWERPC_KVM_EXITTIMING_H__

#include <linux/kvm_host.h>

#ifdef CONFIG_KVM_EXIT_TIMING
void kvmppc_init_timing_stats(struct kvm_vcpu *vcpu);
void kvmppc_update_timing_stats(struct kvm_vcpu *vcpu);
int kvmppc_create_vcpu_debugfs_e500(struct kvm_vcpu *vcpu,
        struct dentry *debugfs_dentry);

static inline void kvmppc_set_exit_type(struct kvm_vcpu *vcpu, int type)
{
 vcpu->arch.last_exit_type = type;
}

#else
/* if exit timing is not configured there is no need to build the c file */
static inline void kvmppc_init_timing_stats(struct kvm_vcpu *vcpu) {}
static inline void kvmppc_update_timing_stats(struct kvm_vcpu *vcpu) {}
static inline int kvmppc_create_vcpu_debugfs_e500(struct kvm_vcpu *vcpu,
        struct dentry *debugfs_dentry)
{
 return 0;
}
static inline void kvmppc_set_exit_type(struct kvm_vcpu *vcpu, int type) {}
#endif /* CONFIG_KVM_EXIT_TIMING */

/* account the exit in kvm_stats */
static inline void kvmppc_account_exit_stat(struct kvm_vcpu *vcpu, int type)
{
 /* type has to be known at build time for optimization */
 BUILD_BUG_ON(!__builtin_constant_p(type));
 switch (type) {
 case EXT_INTR_EXITS:
  vcpu->stat.ext_intr_exits++;
  break;
 case DEC_EXITS:
  vcpu->stat.dec_exits++;
  break;
 case EMULATED_INST_EXITS:
  vcpu->stat.emulated_inst_exits++;
  break;
 case DSI_EXITS:
  vcpu->stat.dsi_exits++;
  break;
 case ISI_EXITS:
  vcpu->stat.isi_exits++;
  break;
 case SYSCALL_EXITS:
  vcpu->stat.syscall_exits++;
  break;
 case DTLB_REAL_MISS_EXITS:
  vcpu->stat.dtlb_real_miss_exits++;
  break;
 case DTLB_VIRT_MISS_EXITS:
  vcpu->stat.dtlb_virt_miss_exits++;
  break;
 case MMIO_EXITS:
  vcpu->stat.mmio_exits++;
  break;
 case ITLB_REAL_MISS_EXITS:
  vcpu->stat.itlb_real_miss_exits++;
  break;
 case ITLB_VIRT_MISS_EXITS:
  vcpu->stat.itlb_virt_miss_exits++;
  break;
 case SIGNAL_EXITS:
  vcpu->stat.signal_exits++;
  break;
 case DBELL_EXITS:
  vcpu->stat.dbell_exits++;
  break;
 case GDBELL_EXITS:
  vcpu->stat.gdbell_exits++;
  break;
 }
}

/* wrapper to set exit time and account for it in kvm_stats */
static inline void kvmppc_account_exit(struct kvm_vcpu *vcpu, int type)
{
 kvmppc_set_exit_type(vcpu, type);
 kvmppc_account_exit_stat(vcpu, type);
}

#endif /* __POWERPC_KVM_EXITTIMING_H__ */

Messung V0.5
C=92 H=100 G=95

¤ Dauer der Verarbeitung: 0.0 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.