All of lore.kernel.org
 help / color / mirror / Atom feed
From: "K. Y. Srinivasan" <kys@microsoft.com>
To: gregkh@suse.de, linux-kernel@vger.kernel.org,
	devel@linuxdriverproject.org, virtualization@lists.osdl.org
Cc: "K. Y. Srinivasan" <kys@microsoft.com>
Subject: [RESEND PATCH 00/22] Staging: hv: Cleanup-storage-drivers-phase-II
Date: Tue,  5 Apr 2011 07:04:21 -0700	[thread overview]
Message-ID: <1302012261-21236-1-git-send-email-kys@microsoft.com> (raw)


This patch-set restructures and cleans up struct hv_storvsc_request.
In the current code, two data structures: struct hv_storvsc_request
and struct storvsc_request_extension together are used to carry
the I/O state and there are many issues with this current
architecture:

	1) The memory for extension data structure 
	   is allocatted just after the data buffer
	   field in struct hv_storvsc_request resulting in comments
	   such as this in struct blkvsc_request (blkvsc_drv.c):

	/*
	 * !!!DO NOT ADD ANYTHING BELOW HERE!!! Otherwise, memory can overlap,
	 * because - The extension buffer falls right here and is pointed to by
	 * request.Extension;
	 * Which sounds like a horrible idea, who designed this?
	 */


	2) State is unnecessarily replicated in both struct hv_storvsc_request
	   and the struct vstor_packet that is embedded in 
	   struct storvsc_request_extension.

This patch-set addresses the above issues by geting rid of replicated
state and consolidating all necessary state into a single data structure.
We also deal with a range of other cleanups in this patch-set:

	1) Use completion primitives to wait for completion.
	2) Get rid of the synch primitive in struct blkvsc_request
	3) Get rid of the need for struct hv_device to be the first
	   element of struct host_device_context.


Regards,

K. Y

             reply	other threads:[~2011-04-05 14:04 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-04-05 14:04 K. Y. Srinivasan [this message]
2011-04-05 14:04 ` [PATCH 01/22] Staging: hv: Move the definition of struct storvsc_request_extension K. Y. Srinivasan
2011-04-05 14:04   ` K. Y. Srinivasan
2011-04-05 14:04   ` [PATCH 02/22] Staging: hv: Embed struct storvsc_request_extension into hv_storvsc_request K. Y. Srinivasan
2011-04-05 14:04   ` [PATCH 03/22] Staging: hv: Get rid of request_ext_size from struct storvsc_driver_object K. Y. Srinivasan
2011-04-05 14:04   ` [PATCH 04/22] Staging: hv: Add a function to map a hv_driver pointer to storvsc driver K. Y. Srinivasan
2011-04-05 14:04   ` [PATCH 05/22] Staging: hv: Use struct completion in struct storvsc_request_extension K. Y. Srinivasan
2011-04-05 14:04   ` [PATCH 06/22] Staging: hv: Allocate request structures zeroed out K. Y. Srinivasan
2011-04-05 14:04     ` K. Y. Srinivasan
2011-04-05 14:04   ` [PATCH 07/22] Staging: hv: Get rid of the type field from struct hv_storvsc_request K. Y. Srinivasan
2011-04-05 14:04   ` [PATCH 08/22] Staging: hv: Get rid of the host " K. Y. Srinivasan
2011-04-05 14:04   ` [PATCH 09/22] Staging: hv: Get rid of the bus " K. Y. Srinivasan
2011-04-05 14:04     ` K. Y. Srinivasan
2011-04-05 14:04   ` [PATCH 10/22] Staging: hv: Get rid of the target_id " K. Y. Srinivasan
2011-04-05 14:04     ` K. Y. Srinivasan
2011-04-05 14:04   ` [PATCH 11/22] Staging: hv: Get rid of lun_id " K. Y. Srinivasan
2011-04-05 14:04   ` [PATCH 12/22] Staging: hv: Get rid of the cdb_len " K. Y. Srinivasan
2011-04-05 14:04     ` K. Y. Srinivasan
2011-04-05 14:04   ` [PATCH 13/22] Staging: hv: Get rid of cdb " K. Y. Srinivasan
2011-04-05 14:04     ` K. Y. Srinivasan
2011-04-05 14:04   ` [PATCH 14/22] Staging: hv: Get rid of sense_buffer_size " K. Y. Srinivasan
2011-04-05 14:04     ` K. Y. Srinivasan
2011-04-05 14:04   ` [PATCH 15/22] Staging: hv: Move sense_buffer field K. Y. Srinivasan
2011-04-05 14:04     ` K. Y. Srinivasan
2011-04-05 14:05   ` [PATCH 16/22] Staging: hv: Move the context field from struct hv_storvsc_request K. Y. Srinivasan
2011-04-05 14:05   ` [PATCH 17/22] Staging: hv: Move on_io_completion() " K. Y. Srinivasan
2011-04-05 14:05     ` K. Y. Srinivasan
2011-04-05 14:05   ` [PATCH 18/22] Staging: hv: Get rid of the status field " K. Y. Srinivasan
2011-04-05 14:05   ` [PATCH 19/22] Staging: hv: Get rid of the bytes_xfer " K. Y. Srinivasan
2011-04-05 14:05     ` K. Y. Srinivasan
2011-04-05 14:05   ` [PATCH 20/22] Staging: hv: Move the data_buffer " K. Y. Srinivasan
2011-04-05 14:05     ` K. Y. Srinivasan
2011-04-05 14:05   ` [PATCH 21/22] Staging: hv: Rename struct storvsc_request_extension K. Y. Srinivasan
2011-04-05 14:05     ` K. Y. Srinivasan
2011-04-05 14:05   ` [PATCH 22/22] Staging: hv: Get rid of synch primitive in struct blkvsc_request K. Y. Srinivasan
2011-04-05 14:05     ` K. Y. Srinivasan

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1302012261-21236-1-git-send-email-kys@microsoft.com \
    --to=kys@microsoft.com \
    --cc=devel@linuxdriverproject.org \
    --cc=gregkh@suse.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=virtualization@lists.osdl.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.