Re: [Qemu-devel] [PATCH][v8] megasas: LSI Megaraid SAS HBA emulation
On 01/13/2012 10:46 AM, Hannes Reinecke wrote: So, I should be removing the 'disable' keyword, then, correct? Yes. The strings are just there to avoid trace statement duplication. But if that's not a problem then I can easily convert the strings to individual trace statements. No, don't bother. Paolo
Re: [Qemu-devel] [PATCH][v8] megasas: LSI Megaraid SAS HBA emulation
On 01/12/2012 07:04 PM, Stefan Hajnoczi wrote: > On Thu, Jan 12, 2012 at 03:45:59PM +0100, Paolo Bonzini wrote: >> On 01/12/2012 11:43 AM, Hannes Reinecke wrote: >>> +# hw/megasas.c >>> +disable megasas_init_firmware(int xfer_len, uint64_t pa) "xfer len %d pa >>> %" PRIx64 " " >>> +disable megasas_init_queue(uint64_t queue_pa, int queue_len, uint64_t >>> head, uint64_t tail, uint32_t flags) "queue at %" PRIx64 " len %d head %" >>> PRIx64 " tail %" PRIx64 " flags %x" >>> +megasas_initq_map_failed(int frame) "scmd %d: failed to map queue" >>> +megasas_initq_mismatch(int queue_len, int fw_cmds) "queue size %d max fw >>> cmds %d" >>> +disable megasas_qf_found(unsigned int index, uint64_t pa) "found mapped >>> frame %x pa %" PRIx64 "" >>> +disable megasas_qf_new(unsigned int index, void *cmd) "return new frame %x >>> cmd %p" >>> +megasas_qf_failed(unsigned long pa) "all frames busy for frame %lx" >>> +disable megasas_qf_enqueue(unsigned int index, unsigned int count, >>> uint64_t context, unsigned int tail, int busy) "enqueue frame %x count %d >>> countext %" PRIx64 " tail %x busy %d" >>> +disable megasas_qf_update(unsigned int head, unsigned int busy) "update >>> reply queue head %x busy %d" >>> +disable megasas_qf_dequeue(unsigned int index) "dequeue frame %x" >>> +disable megasas_qf_map_failed(int cmd, unsigned long frame) "scmd %d: >>> frame %lu" >>> +disable megasas_qf_complete_noirq(uint64_t context) "context %" PRIx64 " " >>> +disable megasas_qf_complete(uint64_t context, unsigned int tail, unsigned >>> int offset, int busy, unsigned int doorbell) "context %" PRIx64 " tail %x >>> offset %d busy %d doorbell %x" >>> +disable megasas_handle_frame(const char *cmd, uint64_t addr, uint64_t >>> context, uint32_t count) "MFI cmd %s addr %" PRIx64 " context %" PRIx64 " >>> count %d" >>> +megasas_frame_busy(uint64_t addr) "frame %" PRIx64 " busy" >>> +megasas_unhandled_frame_cmd(int cmd, uint8_t frame_cmd) "scmd %d: >>> Unhandled MFI cmd %x" >>> +disable megasas_handle_scsi(const char *frame, const char *desc, int dev, >>> int lun, void *sdev, unsigned long size) "%s %s dev %x/%x sdev %p xfer %lu" >>> +disable megasas_scsi_target_not_present(const char *frame, const char >>> *desc, int dev, int lun) "%s %s dev %x/%x target not present" >>> +megasas_scsi_invalid_cdb_len(const char *frame, const char *desc, int dev, >>> int lun, int len) "%s %s dev %x/%x invalid cdb len %d" >>> +megasas_scsi_overflow(int cmd, const char *dir, int bytes, int len) "scmd >>> %d: %s %d of %d bytes" >>> +disable megasas_scsi_underflow(int cmd, const char *dir, int bytes, int >>> len) "scmd %d: %s %d of %d bytes" >>> +megasas_scsi_req_alloc_failed(const char *frame, int dev, int lun) "%s dev >>> %x/%x req allocation failed" >>> +disable megasas_scsi_start(int cmd, const char *desc, int len) "scmd %d: >>> %s %d bytes of data" >>> +disable megasas_scsi_nodata(int cmd) "scmd %d: no data to be transferred" >>> +disable megasas_scsi_complete(int cmd, uint32_t status, int len, int xfer) >>> "scmd %d: finished with status %x, len %u/%u" >>> +disable megasas_command_complete(int cmd, uint32_t status) "scmd %d: >>> command completed, status %x" >>> +disable megasas_handle_io(int cmd, const char *frame, int dev, int lun, >>> unsigned long lba, unsigned long count) "scmd %d: %s dev %x/%x lba %lx >>> count %lu" >>> +disable megasas_io_target_not_present(int cmd, const char *frame, int dev, >>> int lun) "scmd %d: %s dev %x/%x LUN not present" >>> +disable megasas_io_start(int cmd, const char *dir, unsigned long lba, >>> unsigned long count, unsigned long len) "scmd %d: %s start LBA %lx %lu >>> blocks (%lu bytes)" >>> +disable megasas_io_complete(int cmd, uint32_t len) "scmd %d: %d bytes >>> completed" >>> +disable megasas_io_copy(int cmd, const char *dir, int bytes, int len, >>> unsigned long offset) "scmd %d: %s %d of %d bytes, iov offset %lu" >>> +disable megasas_io_continue(int cmd, int bytes) "scmd %d: %d bytes left" >>> +megasas_iovec_map_failed(int cmd, int index, unsigned long iov_size) "scmd >>> %d: iovec %d size %lu" >>> +megasas_iovec_sgl_overflow(int cmd, int index, int limit) "scmd %d: iovec >>> count %d limit %d" >>> +megasas_iovec_sgl_underflow(int cmd, int index) "scmd %d: iovec count %d" >>> +megasas_iovec_sgl_invalid(int cmd, int index, uint64_t pa, uint32_t len) >>> "scmd %d: invalid sgl element %d pa %" PRIx64 " len %u" >>> +megasas_iovec_len(int cmd, const char *desc, int len, int limit) "scmd %d: >>> iovec %s len %d limit %d" >>> +disable megasas_handle_dcmd(int cmd, int opcode) "scmd %d: MFI DCMD opcode >>> %x" >>> +disable megasas_finish_dcmd(int cmd, int size) "scmd %d: MFI DCMD wrote %d >>> bytes" >>> +megasas_dcmd_req_alloc_failed(int cmd, const char *desc) "scmd %d: %s >>> alloc failed" >>> +disable megasas_dcmd_internal_submit(int cmd, const char *desc, int dev) >>> "scmd %d: %s to dev %d" >>> +disable megasas_dcmd_internal_finish(int cmd, int opcode, int lun) "scmd >>> %d: DCMD finis
Re: [Qemu-devel] [PATCH][v8] megasas: LSI Megaraid SAS HBA emulation
On Thu, Jan 12, 2012 at 03:45:59PM +0100, Paolo Bonzini wrote: > On 01/12/2012 11:43 AM, Hannes Reinecke wrote: > >+# hw/megasas.c > >+disable megasas_init_firmware(int xfer_len, uint64_t pa) "xfer len %d pa %" > >PRIx64 " " > >+disable megasas_init_queue(uint64_t queue_pa, int queue_len, uint64_t head, > >uint64_t tail, uint32_t flags) "queue at %" PRIx64 " len %d head %" PRIx64 " > >tail %" PRIx64 " flags %x" > >+megasas_initq_map_failed(int frame) "scmd %d: failed to map queue" > >+megasas_initq_mismatch(int queue_len, int fw_cmds) "queue size %d max fw > >cmds %d" > >+disable megasas_qf_found(unsigned int index, uint64_t pa) "found mapped > >frame %x pa %" PRIx64 "" > >+disable megasas_qf_new(unsigned int index, void *cmd) "return new frame %x > >cmd %p" > >+megasas_qf_failed(unsigned long pa) "all frames busy for frame %lx" > >+disable megasas_qf_enqueue(unsigned int index, unsigned int count, uint64_t > >context, unsigned int tail, int busy) "enqueue frame %x count %d countext %" > >PRIx64 " tail %x busy %d" > >+disable megasas_qf_update(unsigned int head, unsigned int busy) "update > >reply queue head %x busy %d" > >+disable megasas_qf_dequeue(unsigned int index) "dequeue frame %x" > >+disable megasas_qf_map_failed(int cmd, unsigned long frame) "scmd %d: frame > >%lu" > >+disable megasas_qf_complete_noirq(uint64_t context) "context %" PRIx64 " " > >+disable megasas_qf_complete(uint64_t context, unsigned int tail, unsigned > >int offset, int busy, unsigned int doorbell) "context %" PRIx64 " tail %x > >offset %d busy %d doorbell %x" > >+disable megasas_handle_frame(const char *cmd, uint64_t addr, uint64_t > >context, uint32_t count) "MFI cmd %s addr %" PRIx64 " context %" PRIx64 " > >count %d" > >+megasas_frame_busy(uint64_t addr) "frame %" PRIx64 " busy" > >+megasas_unhandled_frame_cmd(int cmd, uint8_t frame_cmd) "scmd %d: Unhandled > >MFI cmd %x" > >+disable megasas_handle_scsi(const char *frame, const char *desc, int dev, > >int lun, void *sdev, unsigned long size) "%s %s dev %x/%x sdev %p xfer %lu" > >+disable megasas_scsi_target_not_present(const char *frame, const char > >*desc, int dev, int lun) "%s %s dev %x/%x target not present" > >+megasas_scsi_invalid_cdb_len(const char *frame, const char *desc, int dev, > >int lun, int len) "%s %s dev %x/%x invalid cdb len %d" > >+megasas_scsi_overflow(int cmd, const char *dir, int bytes, int len) "scmd > >%d: %s %d of %d bytes" > >+disable megasas_scsi_underflow(int cmd, const char *dir, int bytes, int > >len) "scmd %d: %s %d of %d bytes" > >+megasas_scsi_req_alloc_failed(const char *frame, int dev, int lun) "%s dev > >%x/%x req allocation failed" > >+disable megasas_scsi_start(int cmd, const char *desc, int len) "scmd %d: %s > >%d bytes of data" > >+disable megasas_scsi_nodata(int cmd) "scmd %d: no data to be transferred" > >+disable megasas_scsi_complete(int cmd, uint32_t status, int len, int xfer) > >"scmd %d: finished with status %x, len %u/%u" > >+disable megasas_command_complete(int cmd, uint32_t status) "scmd %d: > >command completed, status %x" > >+disable megasas_handle_io(int cmd, const char *frame, int dev, int lun, > >unsigned long lba, unsigned long count) "scmd %d: %s dev %x/%x lba %lx count > >%lu" > >+disable megasas_io_target_not_present(int cmd, const char *frame, int dev, > >int lun) "scmd %d: %s dev %x/%x LUN not present" > >+disable megasas_io_start(int cmd, const char *dir, unsigned long lba, > >unsigned long count, unsigned long len) "scmd %d: %s start LBA %lx %lu > >blocks (%lu bytes)" > >+disable megasas_io_complete(int cmd, uint32_t len) "scmd %d: %d bytes > >completed" > >+disable megasas_io_copy(int cmd, const char *dir, int bytes, int len, > >unsigned long offset) "scmd %d: %s %d of %d bytes, iov offset %lu" > >+disable megasas_io_continue(int cmd, int bytes) "scmd %d: %d bytes left" > >+megasas_iovec_map_failed(int cmd, int index, unsigned long iov_size) "scmd > >%d: iovec %d size %lu" > >+megasas_iovec_sgl_overflow(int cmd, int index, int limit) "scmd %d: iovec > >count %d limit %d" > >+megasas_iovec_sgl_underflow(int cmd, int index) "scmd %d: iovec count %d" > >+megasas_iovec_sgl_invalid(int cmd, int index, uint64_t pa, uint32_t len) > >"scmd %d: invalid sgl element %d pa %" PRIx64 " len %u" > >+megasas_iovec_len(int cmd, const char *desc, int len, int limit) "scmd %d: > >iovec %s len %d limit %d" > >+disable megasas_handle_dcmd(int cmd, int opcode) "scmd %d: MFI DCMD opcode > >%x" > >+disable megasas_finish_dcmd(int cmd, int size) "scmd %d: MFI DCMD wrote %d > >bytes" > >+megasas_dcmd_req_alloc_failed(int cmd, const char *desc) "scmd %d: %s alloc > >failed" > >+disable megasas_dcmd_internal_submit(int cmd, const char *desc, int dev) > >"scmd %d: %s to dev %d" > >+disable megasas_dcmd_internal_finish(int cmd, int opcode, int lun) "scmd > >%d: DCMD finish internal cmd %x lun %d" > >+megasas_dcmd_internal_invalid(int cmd, int opcode) "scmd %d: Invalid > >internal DCMD %x" > >+megasas_
Re: [Qemu-devel] [PATCH][v8] megasas: LSI Megaraid SAS HBA emulation
On 01/12/2012 11:43 AM, Hannes Reinecke wrote: +# hw/megasas.c +disable megasas_init_firmware(int xfer_len, uint64_t pa) "xfer len %d pa %" PRIx64 " " +disable megasas_init_queue(uint64_t queue_pa, int queue_len, uint64_t head, uint64_t tail, uint32_t flags) "queue at %" PRIx64 " len %d head %" PRIx64 " tail %" PRIx64 " flags %x" +megasas_initq_map_failed(int frame) "scmd %d: failed to map queue" +megasas_initq_mismatch(int queue_len, int fw_cmds) "queue size %d max fw cmds %d" +disable megasas_qf_found(unsigned int index, uint64_t pa) "found mapped frame %x pa %" PRIx64 "" +disable megasas_qf_new(unsigned int index, void *cmd) "return new frame %x cmd %p" +megasas_qf_failed(unsigned long pa) "all frames busy for frame %lx" +disable megasas_qf_enqueue(unsigned int index, unsigned int count, uint64_t context, unsigned int tail, int busy) "enqueue frame %x count %d countext %" PRIx64 " tail %x busy %d" +disable megasas_qf_update(unsigned int head, unsigned int busy) "update reply queue head %x busy %d" +disable megasas_qf_dequeue(unsigned int index) "dequeue frame %x" +disable megasas_qf_map_failed(int cmd, unsigned long frame) "scmd %d: frame %lu" +disable megasas_qf_complete_noirq(uint64_t context) "context %" PRIx64 " " +disable megasas_qf_complete(uint64_t context, unsigned int tail, unsigned int offset, int busy, unsigned int doorbell) "context %" PRIx64 " tail %x offset %d busy %d doorbell %x" +disable megasas_handle_frame(const char *cmd, uint64_t addr, uint64_t context, uint32_t count) "MFI cmd %s addr %" PRIx64 " context %" PRIx64 " count %d" +megasas_frame_busy(uint64_t addr) "frame %" PRIx64 " busy" +megasas_unhandled_frame_cmd(int cmd, uint8_t frame_cmd) "scmd %d: Unhandled MFI cmd %x" +disable megasas_handle_scsi(const char *frame, const char *desc, int dev, int lun, void *sdev, unsigned long size) "%s %s dev %x/%x sdev %p xfer %lu" +disable megasas_scsi_target_not_present(const char *frame, const char *desc, int dev, int lun) "%s %s dev %x/%x target not present" +megasas_scsi_invalid_cdb_len(const char *frame, const char *desc, int dev, int lun, int len) "%s %s dev %x/%x invalid cdb len %d" +megasas_scsi_overflow(int cmd, const char *dir, int bytes, int len) "scmd %d: %s %d of %d bytes" +disable megasas_scsi_underflow(int cmd, const char *dir, int bytes, int len) "scmd %d: %s %d of %d bytes" +megasas_scsi_req_alloc_failed(const char *frame, int dev, int lun) "%s dev %x/%x req allocation failed" +disable megasas_scsi_start(int cmd, const char *desc, int len) "scmd %d: %s %d bytes of data" +disable megasas_scsi_nodata(int cmd) "scmd %d: no data to be transferred" +disable megasas_scsi_complete(int cmd, uint32_t status, int len, int xfer) "scmd %d: finished with status %x, len %u/%u" +disable megasas_command_complete(int cmd, uint32_t status) "scmd %d: command completed, status %x" +disable megasas_handle_io(int cmd, const char *frame, int dev, int lun, unsigned long lba, unsigned long count) "scmd %d: %s dev %x/%x lba %lx count %lu" +disable megasas_io_target_not_present(int cmd, const char *frame, int dev, int lun) "scmd %d: %s dev %x/%x LUN not present" +disable megasas_io_start(int cmd, const char *dir, unsigned long lba, unsigned long count, unsigned long len) "scmd %d: %s start LBA %lx %lu blocks (%lu bytes)" +disable megasas_io_complete(int cmd, uint32_t len) "scmd %d: %d bytes completed" +disable megasas_io_copy(int cmd, const char *dir, int bytes, int len, unsigned long offset) "scmd %d: %s %d of %d bytes, iov offset %lu" +disable megasas_io_continue(int cmd, int bytes) "scmd %d: %d bytes left" +megasas_iovec_map_failed(int cmd, int index, unsigned long iov_size) "scmd %d: iovec %d size %lu" +megasas_iovec_sgl_overflow(int cmd, int index, int limit) "scmd %d: iovec count %d limit %d" +megasas_iovec_sgl_underflow(int cmd, int index) "scmd %d: iovec count %d" +megasas_iovec_sgl_invalid(int cmd, int index, uint64_t pa, uint32_t len) "scmd %d: invalid sgl element %d pa %" PRIx64 " len %u" +megasas_iovec_len(int cmd, const char *desc, int len, int limit) "scmd %d: iovec %s len %d limit %d" +disable megasas_handle_dcmd(int cmd, int opcode) "scmd %d: MFI DCMD opcode %x" +disable megasas_finish_dcmd(int cmd, int size) "scmd %d: MFI DCMD wrote %d bytes" +megasas_dcmd_req_alloc_failed(int cmd, const char *desc) "scmd %d: %s alloc failed" +disable megasas_dcmd_internal_submit(int cmd, const char *desc, int dev) "scmd %d: %s to dev %d" +disable megasas_dcmd_internal_finish(int cmd, int opcode, int lun) "scmd %d: DCMD finish internal cmd %x lun %d" +megasas_dcmd_internal_invalid(int cmd, int opcode) "scmd %d: Invalid internal DCMD %x" +megasas_dcmd_unhandled(int cmd, int opcode, int len) "scmd %d: opcode %x, len %d" +disable megasas_dcmd_zero_sge(int cmd) "scmd %d: zero DCMD sge count" +megasas_dcmd_invalid_sge(int cmd, int count) "scmd %d: invalid DCMD sge count %d" +megasas_dcmd_map_failed(int cmd) "scmd %d: Failed to map DCMD buffer" +megasas_dcmd_invalid_xfer