Re: [Qemu-devel] [PATCH 0/3][v17] megasas: LSI Megaraid SAS HBA emulation

2012-06-08 Thread Andreas Färber
Am 08.06.2012 01:24, schrieb Paolo Bonzini:
 Il 29/05/2012 14:22, Paolo Bonzini ha scritto:
 Il 29/05/2012 13:51, Hannes Reinecke ha scritto:
 This is an updated patchset for megasas. Upon popular demand
 I've split it into three parts, the header file, the emulation
 itself, and a patch adding trace events to the emulation.

 Paolo, can you merge it via your tree? Or should I ask
 someone else?

 Yes, of course.  I'll wait for an Acked-by or a couple of weeks,
 whatever comes first.
 
 Acked-by: Alexander Graf ag...@suse.de
 Tested-by: Stefan Hajnoczi stefa...@linux.vnet.ibm.com
 
 Ok, pull request coming. :)

Paolo, could you please squash the following fixups? Namely:
* Drop semicolon after type_init() - unresolved comment from v14
* Make TypeInfo const
* Revert unrelated whitespace change in pci_ids.h

I told Hannes I'd send this to spare him another resend.

It would also be good if someone could review my dependency patch,
prompted by an earlier megasas submission:
http://patchwork.ozlabs.org/patch/163647/
Maybe prepend it to this series' pci.mak change on scsi-next?

diff --git a/hw/megasas.c b/hw/megasas.c
index bf5f8cd..25e5c71 100644
--- a/hw/megasas.c
+++ b/hw/megasas.c
@@ -1935,7 +1935,7 @@ static void megasas_class_init(ObjectClass *oc,
void *data)
 dc-desc = LSI MegaRAID SAS 1078;
 }

-static TypeInfo megasas_info = {
+static const TypeInfo megasas_info = {
 .name  = megasas,
 .parent = TYPE_PCI_DEVICE,
 .instance_size = sizeof(MegasasState),
@@ -1947,4 +1947,4 @@ static void megasas_register_types(void)
 type_register_static(megasas_info);
 }

-type_init(megasas_register_types);
+type_init(megasas_register_types)
diff --git a/hw/pci_ids.h b/hw/pci_ids.h
index 0306255..c2986aa 100644
--- a/hw/pci_ids.h
+++ b/hw/pci_ids.h
@@ -12,6 +12,7 @@

 #define PCI_BASE_CLASS_STORAGE   0x01
 #define PCI_BASE_CLASS_NETWORK   0x02
+
 #define PCI_CLASS_STORAGE_SCSI   0x0100
 #define PCI_CLASS_STORAGE_IDE0x0101
 #define PCI_CLASS_STORAGE_RAID   0x0104

Thanks,
Andreas

-- 
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg



Re: [Qemu-devel] [PATCH 0/3][v17] megasas: LSI Megaraid SAS HBA emulation

2012-06-07 Thread Stefan Hajnoczi
On Tue, May 29, 2012 at 01:51:15PM +0200, Hannes Reinecke wrote:
 This is an updated patchset for megasas. Upon popular demand
 I've split it into three parts, the header file, the emulation
 itself, and a patch adding trace events to the emulation.
 
 Paolo, can you merge it via your tree? Or should I ask
 someone else?
 
 Changes since v17:
 - Fix crash when booting without Option ROM,
   reported by Alex Graf
 
 Changes since v16:
 - Codingstyle fixes, reported by Alex Graf
 
 Changes since v15:
 - Move to new SCSI API
 - Use generic trace functions for DCMDs
 - Replace bitfields with defines
 - Implement CFG_READ
 - Fix enclosure ID reporting
 
 Changes since v14:
 - Rename MPTState to MegasasState
 - Use bool type
 - Enable 64 bit PCI accesses
 - Replace raid mode string handling
 - Use common function for requests handling
 
 Changes since v13:
 - Remove separate MSI-X BAR
 - Simplify BAR allocation
 
 Changes since v12:
 - Fixup flag setting via properties
 - Fixup MSI-X handling
 - Disable MSI-X per default
 
 Changes since v11:
 - Remove unneeded variables
 
 Changes since v10:
 - Port to new device type API
 - Include suggestion from Alex Graf:
 - Remove 'inline' function declaration
 - Queue setup and interrupt enablement needs to be treated
   independently
 - Always read in 64 bit context and just mask out the top
   bits if required
 
 Changes since v9:
 - Split off trace events into a separate patch
 - Do not check for max_luns in PD Info
 - Update trace events
 - Clarify license statement
 - Fixup coding style issues
 
 Changes since v8:
 - Remove 'disable' keyword from trace definitions
 - Convert hand-crafted debugging statements with trace
   definitions
 - Treat 'context' tag as little endian
 Changes since v7:
 - Port to new memory API
 - Port to new PCI infrastructure
 - Use fixed buffers for sense processing
 - Update to updated SCSI infrastructure
 
 Changes since v6:
 - Preliminary patches pushed to Kevins block tree
 - Implement 64bit contexts, required for Windows7
 - Use iovecs for DCMD processing
 - Add MSI-X support
   Latest Linux driver now happily uses MSI-X.
 - Static iovec allocation
   We have a fixed upper number of iovecs, so we can
   save us the allocation. Suggested by Alex Graf.
 - Update MFI header
   Latest Linux driver has some more definitions,
   add them
 - Fixup AEN handling
 - Update tracing details
 - Remove sdev pointer from megasas_cmd_t
 
 Changes since v5:
 - megasas: Use tracing infrastructure instead of DPRINTF
 - megasas: Use new PCI infrastructure
 - megasas: Check for iovec mapping failure
   cpu_map_physical_memory() might fail, so we need to check for
   it when mapping iovecs.
 - megasas: Trace scsi buffer overflow
   The transfer length as specified in the SCSI command might
   disagree with the length of the iovec. We should be tracing
   these issues.
 - megasas: Reset frames after init firmware
   When receiving an INIT FIRMWARE command we need reset all
   frames, otherwise some frames might point to invalid memory.
 
 Chances since v4:
 - megasas: checkpatch.pl fixes and update to work with the
   changed interface in scsi_req_new(). Also included the
   suggested fixes from Alex.
 
 Hannes Reinecke (3):
   megasas: Add header file
   megasas: LSI Megaraid SAS HBA emulation
   megasas: Add trace events
 
  Makefile.objs   |1 +
  default-configs/pci.mak |1 +
  hw/megasas.c| 2198 
 +++
  hw/mfi.h| 1248 +++
  hw/pci_ids.h|3 +-
  trace-events|   79 ++
  6 files changed, 3529 insertions(+), 1 deletions(-)
  create mode 100644 hw/megasas.c
  create mode 100644 hw/mfi.h

Not a line-by-line review but overall it looks okay.  I also tested that
a RHEL 6 guest sees a SCSI disk.

Tested-by: Stefan Hajnoczi stefa...@linux.vnet.ibm.com




Re: [Qemu-devel] [PATCH 0/3][v17] megasas: LSI Megaraid SAS HBA emulation

2012-06-07 Thread Paolo Bonzini
Il 29/05/2012 14:22, Paolo Bonzini ha scritto:
 Il 29/05/2012 13:51, Hannes Reinecke ha scritto:
 This is an updated patchset for megasas. Upon popular demand
 I've split it into three parts, the header file, the emulation
 itself, and a patch adding trace events to the emulation.

 Paolo, can you merge it via your tree? Or should I ask
 someone else?
 
 Yes, of course.  I'll wait for an Acked-by or a couple of weeks,
 whatever comes first.

 Acked-by: Alexander Graf ag...@suse.de
 Tested-by: Stefan Hajnoczi stefa...@linux.vnet.ibm.com

Ok, pull request coming. :)

Paolo



Re: [Qemu-devel] [PATCH 0/3][v17] megasas: LSI Megaraid SAS HBA emulation

2012-05-30 Thread Alexander Graf

On 29.05.2012, at 13:51, Hannes Reinecke wrote:

 This is an updated patchset for megasas. Upon popular demand
 I've split it into three parts, the header file, the emulation
 itself, and a patch adding trace events to the emulation.
 
 Paolo, can you merge it via your tree? Or should I ask
 someone else?

Looks good to me, works on x86 and ppc hosts. Very nice patch set :). Finally a 
working SCSI HBA in QEMU! Yay ;)

Acked-by: Alexander Graf ag...@suse.de


Alex




[Qemu-devel] [PATCH 0/3][v17] megasas: LSI Megaraid SAS HBA emulation

2012-05-29 Thread Hannes Reinecke
This is an updated patchset for megasas. Upon popular demand
I've split it into three parts, the header file, the emulation
itself, and a patch adding trace events to the emulation.

Paolo, can you merge it via your tree? Or should I ask
someone else?

Changes since v17:
- Fix crash when booting without Option ROM,
  reported by Alex Graf

Changes since v16:
- Codingstyle fixes, reported by Alex Graf

Changes since v15:
- Move to new SCSI API
- Use generic trace functions for DCMDs
- Replace bitfields with defines
- Implement CFG_READ
- Fix enclosure ID reporting

Changes since v14:
- Rename MPTState to MegasasState
- Use bool type
- Enable 64 bit PCI accesses
- Replace raid mode string handling
- Use common function for requests handling

Changes since v13:
- Remove separate MSI-X BAR
- Simplify BAR allocation

Changes since v12:
- Fixup flag setting via properties
- Fixup MSI-X handling
- Disable MSI-X per default

Changes since v11:
- Remove unneeded variables

Changes since v10:
- Port to new device type API
- Include suggestion from Alex Graf:
- Remove 'inline' function declaration
- Queue setup and interrupt enablement needs to be treated
  independently
- Always read in 64 bit context and just mask out the top
  bits if required

Changes since v9:
- Split off trace events into a separate patch
- Do not check for max_luns in PD Info
- Update trace events
- Clarify license statement
- Fixup coding style issues

Changes since v8:
- Remove 'disable' keyword from trace definitions
- Convert hand-crafted debugging statements with trace
  definitions
- Treat 'context' tag as little endian
Changes since v7:
- Port to new memory API
- Port to new PCI infrastructure
- Use fixed buffers for sense processing
- Update to updated SCSI infrastructure

Changes since v6:
- Preliminary patches pushed to Kevins block tree
- Implement 64bit contexts, required for Windows7
- Use iovecs for DCMD processing
- Add MSI-X support
  Latest Linux driver now happily uses MSI-X.
- Static iovec allocation
  We have a fixed upper number of iovecs, so we can
  save us the allocation. Suggested by Alex Graf.
- Update MFI header
  Latest Linux driver has some more definitions,
  add them
- Fixup AEN handling
- Update tracing details
- Remove sdev pointer from megasas_cmd_t

Changes since v5:
- megasas: Use tracing infrastructure instead of DPRINTF
- megasas: Use new PCI infrastructure
- megasas: Check for iovec mapping failure
  cpu_map_physical_memory() might fail, so we need to check for
  it when mapping iovecs.
- megasas: Trace scsi buffer overflow
  The transfer length as specified in the SCSI command might
  disagree with the length of the iovec. We should be tracing
  these issues.
- megasas: Reset frames after init firmware
  When receiving an INIT FIRMWARE command we need reset all
  frames, otherwise some frames might point to invalid memory.

Chances since v4:
- megasas: checkpatch.pl fixes and update to work with the
  changed interface in scsi_req_new(). Also included the
  suggested fixes from Alex.

Hannes Reinecke (3):
  megasas: Add header file
  megasas: LSI Megaraid SAS HBA emulation
  megasas: Add trace events

 Makefile.objs   |1 +
 default-configs/pci.mak |1 +
 hw/megasas.c| 2198 +++
 hw/mfi.h| 1248 +++
 hw/pci_ids.h|3 +-
 trace-events|   79 ++
 6 files changed, 3529 insertions(+), 1 deletions(-)
 create mode 100644 hw/megasas.c
 create mode 100644 hw/mfi.h

-- 
1.7.3.4




Re: [Qemu-devel] [PATCH 0/3][v17] megasas: LSI Megaraid SAS HBA emulation

2012-05-29 Thread Paolo Bonzini
Il 29/05/2012 13:51, Hannes Reinecke ha scritto:
 This is an updated patchset for megasas. Upon popular demand
 I've split it into three parts, the header file, the emulation
 itself, and a patch adding trace events to the emulation.
 
 Paolo, can you merge it via your tree? Or should I ask
 someone else?

Yes, of course.  I'll wait for an Acked-by or a couple of weeks,
whatever comes first.

Paolo