Hi,

Sorry, for this basic question. Do the above trace function lead to some
printfs which will be helpful for debugging. If yes, where I can see the
trace logs. I have not been able to find the definition of these trace
functions.

Thanks
Anshul Makkar
www.justkernel.com


On Tue, May 27, 2014 at 3:01 PM, Igor Mammedov <imamm...@redhat.com> wrote:

> Add events for tracing accesses to memory hotplug IO ports.
>
> Signed-off-by: Igor Mammedov <imamm...@redhat.com>
> ---
>  hw/acpi/memory_hotplug.c |   13 +++++++++++++
>  trace-events             |   13 +++++++++++++
>  2 files changed, 26 insertions(+), 0 deletions(-)
>
> diff --git a/hw/acpi/memory_hotplug.c b/hw/acpi/memory_hotplug.c
> index 6138346..73a0501 100644
> --- a/hw/acpi/memory_hotplug.c
> +++ b/hw/acpi/memory_hotplug.c
> @@ -2,6 +2,7 @@
>  #include "hw/acpi/pc-hotplug.h"
>  #include "hw/mem/dimm.h"
>  #include "hw/boards.h"
> +#include "trace.h"
>
>  static uint64_t acpi_memory_hotplug_read(void *opaque, hwaddr addr,
>                                           unsigned int size)
> @@ -11,6 +12,7 @@ static uint64_t acpi_memory_hotplug_read(void *opaque,
> hwaddr addr,
>      MemStatus *mdev;
>
>      if (mem_st->selector >= mem_st->dev_count) {
> +        trace_mhp_acpi_invalid_slot_selected(mem_st->selector);
>          return 0;
>      }
>
> @@ -18,24 +20,30 @@ static uint64_t acpi_memory_hotplug_read(void *opaque,
> hwaddr addr,
>      switch (addr) {
>      case 0x0: /* Lo part of phys address where DIMM is mapped */
>          val = object_property_get_int(OBJECT(mdev->dimm), DIMM_ADDR_PROP,
> NULL);
> +        trace_mhp_acpi_read_addr_lo(mem_st->selector, val);
>          break;
>      case 0x4: /* Hi part of phys address where DIMM is mapped */
>          val = object_property_get_int(OBJECT(mdev->dimm), DIMM_ADDR_PROP,
>                                        NULL) >> 32;
> +        trace_mhp_acpi_read_addr_hi(mem_st->selector, val);
>          break;
>      case 0x8: /* Lo part of DIMM size */
>          val = object_property_get_int(OBJECT(mdev->dimm), DIMM_SIZE_PROP,
> NULL);
> +        trace_mhp_acpi_read_size_lo(mem_st->selector, val);
>          break;
>      case 0xc: /* Hi part of DIMM size */
>          val = object_property_get_int(OBJECT(mdev->dimm), DIMM_SIZE_PROP,
>                                        NULL) >> 32;
> +        trace_mhp_acpi_read_size_hi(mem_st->selector, val);
>          break;
>      case 0x10: /* node proximity for _PXM method */
>          val = object_property_get_int(OBJECT(mdev->dimm), DIMM_NODE_PROP,
> NULL);
> +        trace_mhp_acpi_read_pxm(mem_st->selector, val);
>          break;
>      case 0x14: /* pack and return is_* fields */
>          val |= mdev->is_enabled   ? 1 : 0;
>          val |= mdev->is_inserting ? 2 : 0;
> +        trace_mhp_acpi_read_flags(mem_st->selector, val);
>          break;
>      default:
>          val = ~0;
> @@ -56,6 +64,7 @@ static void acpi_memory_hotplug_write(void *opaque,
> hwaddr addr, uint64_t data,
>
>      if (addr) {
>          if (mem_st->selector >= mem_st->dev_count) {
> +            trace_mhp_acpi_invalid_slot_selected(mem_st->selector);
>              return;
>          }
>      }
> @@ -63,6 +72,7 @@ static void acpi_memory_hotplug_write(void *opaque,
> hwaddr addr, uint64_t data,
>      switch (addr) {
>      case 0x0: /* DIMM slot selector */
>          mem_st->selector = data;
> +        trace_mhp_acpi_write_slot(mem_st->selector);
>          break;
>      case 0x4: /* _OST event  */
>          mdev = &mem_st->devs[mem_st->selector];
> @@ -72,10 +82,12 @@ static void acpi_memory_hotplug_write(void *opaque,
> hwaddr addr, uint64_t data,
>              /* TODO: handle device remove OST event */
>          }
>          mdev->ost_event = data;
> +        trace_mhp_acpi_write_ost_ev(mem_st->selector, mdev->ost_event);
>          break;
>      case 0x8: /* _OST status */
>          mdev = &mem_st->devs[mem_st->selector];
>          mdev->ost_status = data;
> +        trace_mhp_acpi_write_ost_status(mem_st->selector,
> mdev->ost_status);
>          /* TODO: report async error */
>          /* TODO: implement memory removal on guest signal */
>          break;
> @@ -83,6 +95,7 @@ static void acpi_memory_hotplug_write(void *opaque,
> hwaddr addr, uint64_t data,
>          mdev = &mem_st->devs[mem_st->selector];
>          if (data & 2) { /* clear insert event */
>              mdev->is_inserting  = false;
> +            trace_mhp_acpi_clear_insert_evt(mem_st->selector);
>          }
>          break;
>      }
> diff --git a/trace-events b/trace-events
> index b6d289d..4f4c58f 100644
> --- a/trace-events
> +++ b/trace-events
> @@ -1252,3 +1252,16 @@ xen_pv_mmio_write(uint64_t addr) "WARNING: write to
> Xen PV Device MMIO space (ad
>  # hw/pci/pci_host.c
>  pci_cfg_read(const char *dev, unsigned devid, unsigned fnid, unsigned
> offs, unsigned val) "%s %02u:%u @0x%x -> 0x%x"
>  pci_cfg_write(const char *dev, unsigned devid, unsigned fnid, unsigned
> offs, unsigned val) "%s %02u:%u @0x%x <- 0x%x"
> +
> +#hw/acpi/memory_hotplug.c
> +mhp_acpi_invalid_slot_selected(uint32_t slot) "0x%"PRIx32
> +mhp_acpi_read_addr_lo(uint32_t slot, uint32_t addr) "slot[0x%"PRIx32"]
> addr lo: 0x%"PRIx32
> +mhp_acpi_read_addr_hi(uint32_t slot, uint32_t addr) "slot[0x%"PRIx32"]
> addr hi: 0x%"PRIx32
> +mhp_acpi_read_size_lo(uint32_t slot, uint32_t size) "slot[0x%"PRIx32"]
> size lo: 0x%"PRIx32
> +mhp_acpi_read_size_hi(uint32_t slot, uint32_t size) "slot[0x%"PRIx32"]
> size hi: 0x%"PRIx32
> +mhp_acpi_read_pxm(uint32_t slot, uint32_t pxm) "slot[0x%"PRIx32"]
> proximity: 0x%"PRIx32
> +mhp_acpi_read_flags(uint32_t slot, uint32_t flags) "slot[0x%"PRIx32"]
> flags: 0x%"PRIx32
> +mhp_acpi_write_slot(uint32_t slot) "set active slot: 0x%"PRIx32
> +mhp_acpi_write_ost_ev(uint32_t slot, uint32_t ev) "slot[0x%"PRIx32"] OST
> EVENT: 0x%"PRIx32
> +mhp_acpi_write_ost_status(uint32_t slot, uint32_t st) "slot[0x%"PRIx32"]
> OST STATUS: 0x%"PRIx32
> +mhp_acpi_clear_insert_evt(uint32_t slot) "slot[0x%"PRIx32"] clear insert
> event"
> --
> 1.7.1
>
>
>

Reply via email to