public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/7] staging: unisys: cleanup proc entries in uislib
@ 2014-05-12 16:38 Benjamin Romer
  2014-05-12 16:38 ` [PATCH 1/7] staging: unisys: remove testing proc interfaces from uislib Benjamin Romer
                   ` (6 more replies)
  0 siblings, 7 replies; 13+ messages in thread
From: Benjamin Romer @ 2014-05-12 16:38 UTC (permalink / raw)
  To: gregkh, sparmaintainer, linux-kernel, jkc, devel

This patch series removes old and redundant proc entries from the uislib
module, and moves the remaining entries to debugfs. The removed entries are
from unit testing of the module and are no longer used. The information in the
vbus directory was redundant, so the directory and entries are removed. The
remaining entries are only interesting when debugging, and are not used by any
user space program, so debugfs is the right place for them.


^ permalink raw reply	[flat|nested] 13+ messages in thread

* [PATCH 1/7] staging: unisys: remove testing proc interfaces from uislib
  2014-05-12 16:38 [PATCH 0/7] staging: unisys: cleanup proc entries in uislib Benjamin Romer
@ 2014-05-12 16:38 ` Benjamin Romer
  2014-05-12 16:38 ` [PATCH 2/7] staging: unisys: move uislib/platform proc entry to debugfs Benjamin Romer
                   ` (5 subsequent siblings)
  6 siblings, 0 replies; 13+ messages in thread
From: Benjamin Romer @ 2014-05-12 16:38 UTC (permalink / raw)
  To: gregkh, sparmaintainer, linux-kernel, jkc, devel; +Cc: Benjamin Romer

Several proc interfaces in the uislib module were intended for debug and
testing during initial driver development. They are no longer needed, so
we should remove them from the module.

Signed-off-by: Benjamin Romer <benjamin.romer@unisys.com>
---
 drivers/staging/unisys/uislib/uislib.c | 534 +--------------------------------
 1 file changed, 1 insertion(+), 533 deletions(-)

diff --git a/drivers/staging/unisys/uislib/uislib.c b/drivers/staging/unisys/uislib/uislib.c
index 885857e..fdc23676 100644
--- a/drivers/staging/unisys/uislib/uislib.c
+++ b/drivers/staging/unisys/uislib/uislib.c
@@ -45,7 +45,6 @@
 
 #define SET_PROC_OWNER(x, y)
 
-#define UISLIB_TEST_PROC
 #define POLLJIFFIES_NORMAL 1
 /* Choose whether or not you want to wakeup the request-polling thread
  * after an IO termination:
@@ -91,44 +90,20 @@ static int Go_Polling_Device_Channels;
 
 static struct proc_dir_entry *uislib_proc_dir;
 static struct proc_dir_entry *uislib_proc_vbus_dir;
-static struct proc_dir_entry *vnic_proc_entry;	/* Used to be "datachan" */
-static struct proc_dir_entry *ctrlchan_proc_entry;
-static struct proc_dir_entry *pmem_proc_entry;
 static struct proc_dir_entry *info_proc_entry;
-static struct proc_dir_entry *switch_proc_entry;
-static struct proc_dir_entry *extport_proc_entry;
 static struct proc_dir_entry *platformnumber_proc_entry;
-static struct proc_dir_entry *bus_proc_entry;
-static struct proc_dir_entry *dev_proc_entry;
-static struct proc_dir_entry *chipset_proc_entry;
 static struct proc_dir_entry *cycles_before_wait_proc_entry;
-static struct proc_dir_entry *reset_counts_proc_entry;
 static struct proc_dir_entry *smart_wakeup_proc_entry;
-static struct proc_dir_entry *disable_proc_entry;
 
 #define DIR_PROC_ENTRY "uislib"
 #define DIR_VBUS_PROC_ENTRY "vbus"
-#define VNIC_PROC_ENTRY_FN "vnic"	/* Used to be "datachan" */
-#define CTRLCHAN_PROC_ENTRY_FN "ctrlchan"
-#define PMEM_PROC_ENTRY_FN "phys_to_virt"
 #define INFO_PROC_ENTRY_FN "info"
-#define SWITCH_PROC_ENTRY_FN "switch"
-#define SWITCH_COUNT_PROC_ENTRY_FN "switch_count"
-#define EXTPORT_PROC_ENTRY_FN "extport"
 #define PLATFORMNUMBER_PROC_ENTRY_FN "platform"
-#define BUS_PROC_ENTRY_FN "bus"
-#define DEV_PROC_ENTRY_FN "device"
-#define CHIPSET_PROC_ENTRY_FN "chipset"
 #define CYCLES_BEFORE_WAIT_PROC_ENTRY_FN "cycles_before_wait"
-#define RESET_COUNTS_PROC_ENTRY_FN "reset_counts"
 #define SMART_WAKEUP_PROC_ENTRY_FN "smart_wakeup"
 #define CALLHOME_PROC_ENTRY_FN "callhome"
 #define CALLHOME_THROTTLED_PROC_ENTRY_FN "callhome_throttled"
-#define DISABLE_PROC_ENTRY_FN "switch_state"
-#ifdef UISLIB_TEST_PROC
-static struct proc_dir_entry *test_proc_entry;
-#define TEST_PROC_ENTRY_FN "test"
-#endif
+
 static unsigned long long cycles_before_wait, wait_cycles;
 
 /*****************************************************/
@@ -155,21 +130,6 @@ static ssize_t uislib_proc_read_writeonly(struct file *file,
 					  char __user *buffer,
 					  size_t count, loff_t *ppos);
 
-static ssize_t vnic_proc_write(struct file *file, const char __user *buffer,
-			       size_t count, loff_t *ppos);
-
-static const struct file_operations proc_vnic_fops = {
-	.read = uislib_proc_read_writeonly,
-	.write = vnic_proc_write,
-};
-
-static ssize_t chipset_proc_write(struct file *file, const char __user *buffer,
-				  size_t count, loff_t *ppos);
-
-static const struct file_operations proc_chipset_fops = {
-	.read = uislib_proc_read_writeonly,
-	.write = chipset_proc_write,
-};
 
 static ssize_t info_proc_read(struct file *file, char __user *buf,
 			      size_t len, loff_t *offset);
@@ -191,14 +151,6 @@ static const struct file_operations proc_cycles_before_wait_fops = {
 	.write = cycles_before_wait_proc_write,
 };
 
-static ssize_t reset_counts_proc_write(struct file *file,
-				       const char __user *buffer,
-				       size_t count, loff_t *ppos);
-static const struct file_operations proc_reset_counts_fops = {
-	.read = uislib_proc_read_writeonly,
-	.write = reset_counts_proc_write,
-};
-
 static ssize_t smart_wakeup_proc_write(struct file *file,
 				       const char __user *buffer,
 				       size_t count, loff_t *ppos);
@@ -207,30 +159,6 @@ static const struct file_operations proc_smart_wakeup_fops = {
 	.write = smart_wakeup_proc_write,
 };
 
-static ssize_t test_proc_write(struct file *file,
-			       const char __user *buffer,
-			       size_t count, loff_t *ppos);
-static const struct file_operations proc_test_fops = {
-	.read = uislib_proc_read_writeonly,
-	.write = test_proc_write,
-};
-
-static ssize_t bus_proc_write(struct file *file,
-			      const char __user *buffer,
-			      size_t count, loff_t *ppos);
-static const struct file_operations proc_bus_fops = {
-	.read = uislib_proc_read_writeonly,
-	.write = bus_proc_write,
-};
-
-static ssize_t dev_proc_write(struct file *file,
-			      const char __user *buffer,
-			      size_t count, loff_t *ppos);
-static const struct file_operations proc_dev_fops = {
-	.read = uislib_proc_read_writeonly,
-	.write = dev_proc_write,
-};
-
 static void
 init_msg_header(CONTROLVM_MESSAGE *msg, U32 id, uint rsp, uint svr)
 {
@@ -1363,130 +1291,6 @@ EXPORT_SYMBOL_GPL(uislib_cache_free);
 /* proc filesystem callback functions                */
 /*****************************************************/
 
-static ssize_t
-vnic_proc_write(struct file *file, const char __user *buffer,
-		size_t count, loff_t *ppos)
-{
-	int action = 0xffff, busNo = 0, i, result = 0;
-	char buf[4];
-	char direction;
-/* GUID guid; */
-	if (count >= ARRAY_SIZE(buf))
-		return -EINVAL;
-
-	if (copy_from_user(buf, buffer, count)) {
-		LOGERR("echo > /proc/uislib/vnic copy_from_user ****FAILED.\n");
-		return -EFAULT;
-	}
-
-	i = sscanf(buf, "%d%c", &action, &direction);
-	if (i != 2) {
-		LOGERR("unable to parse vnic proc parameters.\n");
-		return -EFAULT;
-	}
-
-	if ((direction != '-') && (direction != '+')) {
-		LOGERR("unable to determine whether to add or delete vnic\n");
-		return -EFAULT;
-	}
-
-	/* if (i < 1), i.e., if we didn't even read the action field,
-	* then action will default to 0xffff and the code below will
-	* fall through the switch and print usage.
-	*/
-	switch (action) {
-	case 0:
-		/* call client method... */
-		busNo = 0;	/* All client drivers use bus value of 0... */
-		if (direction == '+')
-			result = uislib_client_add_vnic(busNo);
-		else
-			result = uislib_client_delete_vnic(busNo);
-		if (!result) {
-			LOGERR("echo 0%c > /proc/uislib/vnic failed (client end)",
-			     direction);
-			return -EFAULT;
-		}
-		return count;
-
-	default:
-		break;
-	}
-
-	LOGERR("USAGE: echo <action><direction (up/down)> > /proc/uislib/vnic");
-	LOGERR(" ");
-	LOGERR("Client Syntax");
-	LOGERR("-------------");
-	LOGERR("0+    ==> add vnic");
-	LOGERR("0-    ==> delete vnic");
-	LOGERR(" ");
-	return count;
-}				/* end vnic_proc_write */
-
-static ssize_t
-chipset_proc_write(struct file *file, const char __user *buffer,
-		   size_t count, loff_t *ppos)
-{
-	int i, action = 0xffff;
-	char buf[4];
-	CONTROLVM_MESSAGE msg;
-
-	if (count >= ARRAY_SIZE(buf))
-		return -EINVAL;
-
-	memset(&msg, 0, sizeof(CONTROLVM_MESSAGE));
-
-	if (copy_from_user(buf, buffer, count)) {
-		LOGERR("copy_from_user ****FAILED.\n");
-		return -EFAULT;
-	}
-
-	if (chipset_inited) {
-		LOGINF("Chipset already initialized\n");
-		return -EFAULT;
-	}
-	i = sscanf(buf, "%x", &action);
-
-	/* if (i < 1), i.e., if we didn't even read the action field,
-	* then action will default to 0xffff and the code below will
-	* fall through the switch and print usage.
-	*/
-	switch (action) {
-	case 1:
-		/* GUEST */
-		/* step: initialize the chipset */
-		init_msg_header(&msg, CONTROLVM_CHIPSET_INIT, 0, 0);
-		msg.hdr.Flags.testMessage = 0;
-		msg.cmd.initChipset.busCount = 23;
-		msg.cmd.initChipset.switchCount = 23;
-
-		if (init_chipset(&msg, NULL) != CONTROLVM_RESP_SUCCESS) {
-			LOGERR("init_chipset failed.\n");
-			return 0;
-		}
-		return 1;
-	case 2:
-		/* BOTH */
-		init_msg_header(&msg, CONTROLVM_CHIPSET_INIT, 0, 0);
-		msg.hdr.Flags.testMessage = 1;
-		msg.cmd.initChipset.busCount = 23;
-		msg.cmd.initChipset.switchCount = 23;
-
-		if (init_chipset(&msg, NULL) != CONTROLVM_RESP_SUCCESS) {
-			LOGERR("init_chipset failed.\n");
-			return 0;
-		}
-		return 1;
-
-	default:
-		break;
-	}
-
-	LOGERR("usage: 1 ==> init_chipset client\n");
-	LOGERR("usage: 2 ==> init_chipset test\n");
-	return -EFAULT;
-}
-
 #define PLINE(...) uisutil_add_proc_line_ex(&tot, buff, \
 					       buff_len, __VA_ARGS__)
 
@@ -1612,8 +1416,6 @@ platformnumber_proc_read(struct file *file, char __user *buf,
 	return length;
 }
 
-#ifdef UISLIB_TEST_PROC
-
 /* proc/uislib/vbus/<x>/info */
 static int
 proc_info_vbus_show(struct seq_file *m, void *v)
@@ -1653,82 +1455,6 @@ proc_info_vbus_show(struct seq_file *m, void *v)
 }
 
 static ssize_t
-bus_proc_write(struct file *file, const char __user *buffer,
-	       size_t count, loff_t *ppos)
-{
-	int server_flag = 0;
-	int i, action = 0xffff, result;
-	char buf[16];
-	CONTROLVM_MESSAGE msg;
-	U32 busNo, deviceCount;
-
-	if (count >= ARRAY_SIZE(buf))
-		return -EINVAL;
-
-	memset(&msg, 0, sizeof(CONTROLVM_MESSAGE));
-
-	if (copy_from_user(buf, buffer, count)) {
-		LOGERR("echo > /proc/uislib/bus: copy_from_user ****FAILED.");
-		return -EFAULT;
-	}
-
-	i = sscanf(buf, "%x-%d-%d", &action, &busNo, &deviceCount);
-
-	/* if (i < 1), i.e., if we didn't even read the action field,
-	* then action will default to 0xffff and the code below will
-	* fall through the switch and print usage.
-	*/
-	switch (action) {
-	case 0:
-		/* destroy a bus */
-		if (i != 2)
-			break;
-		init_msg_header(&msg, CONTROLVM_BUS_DESTROY, 0, server_flag);
-		msg.cmd.destroyBus.busNo = busNo;
-
-		result = destroy_bus(&msg, NULL);
-
-		if (result != CONTROLVM_RESP_SUCCESS) {
-			LOGERR("echo 0-%d > /proc/uislib/bus {CONTROLVM_BUS_DESTROY Failed} Result(%d)",
-			     busNo, result);
-			return -EFAULT;
-		}
-		return count;
-	case 1:
-		/* create a bus */
-		if (i != 3)
-			break;
-		init_msg_header(&msg, CONTROLVM_BUS_CREATE, 0, server_flag);
-		msg.cmd.createBus.busNo = busNo;
-		msg.cmd.createBus.deviceCount = deviceCount;
-
-		result = create_bus(&msg, NULL);
-
-		if (result != CONTROLVM_RESP_SUCCESS) {
-			LOGERR("echo 1-%d-%d > /proc/uislib/bus {CONTROLVM_BUS_CREATE Failed} Result(%d)",
-			     busNo, deviceCount, result);
-			return -EFAULT;
-		}
-
-		return count;
-	default:
-		break;
-	}
-
-	LOGERR("USAGE: echo <action>-<busNo>... > /proc/uislib/bus");
-	LOGERR(" ");
-	LOGERR("Destruct Syntax     ControlVM Message Id");
-	LOGERR("---------------     ---------------------");
-	LOGERR("0-<busNo>       ==> CONTROLVM_BUS_DESTROY");
-	LOGERR(" ");
-	LOGERR("Construct Syntax            ControlVM Message Id");
-	LOGERR("-----------------------     -------------------- ");
-	LOGERR("1-<busNo>-<deviceCount> ==> CONTROLVM_BUS_CREATE");
-
-	return -EFAULT;
-}
-
-static ssize_t
 uislib_proc_read_writeonly(struct file *file, char __user *buffer,
 	       size_t count, loff_t *ppos)
 {
@@ -1736,105 +1462,6 @@ uislib_proc_read_writeonly(struct file *file, char __user *buffer,
 }
 
 static ssize_t
-dev_proc_write(struct file *file, const char __user *buffer,
-	       size_t count, loff_t *ppos)
-{
-	int server_flag = 0;
-	CONTROLVM_MESSAGE msg;
-	U32 busNo, devNo;
-	char buf[32];
-	unsigned int chanptr;
-	int type, i, action = 0xffff, result;
-
-	if (count >= ARRAY_SIZE(buf))
-		return -EINVAL;
-
-	if (copy_from_user(buf, buffer, count)) {
-		LOGERR("echo > /proc/uislib/device: copy_from_user ****FAILED.");
-		return -EFAULT;
-	}
-
-	i = sscanf(buf, "%x-%d-%d-%x-%d",
-		   &action, &busNo, &devNo, &chanptr, &type);
-
-	switch (action) {
-	case 0:
-		if (i != 3)
-			break;
-
-		/* destroy a device */
-		init_msg_header(&msg, CONTROLVM_DEVICE_DESTROY, 0, server_flag);
-		msg.cmd.destroyDevice.busNo = busNo;
-		msg.cmd.destroyDevice.devNo = devNo;
-
-		result = destroy_device(&msg, NULL);
-
-		if (result != CONTROLVM_RESP_SUCCESS) {
-			LOGERR("echo 0-%d-%d > /proc/uislib/device {CONTROLVM_DEVICE_DESTROY Failed} Result(%d)",
-			     busNo, devNo, result);
-			return -EFAULT;
-		}
-
-		return count;
-
-	case 1:
-		if (i != 5)
-			break;
-
-		/* create a device */
-		init_msg_header(&msg, CONTROLVM_DEVICE_CREATE, 0, server_flag);
-		msg.cmd.createDevice.busNo = busNo;
-		msg.cmd.createDevice.devNo = devNo;
-		msg.cmd.createDevice.channelAddr = __pa(chanptr);
-		msg.cmd.createDevice.channelBytes = MIN_IO_CHANNEL_SIZE;
-
-		if (type == 0)
-			msg.cmd.createDevice.dataTypeGuid =
-			    UltraVhbaChannelProtocolGuid;
-		else if (type == 1)
-			msg.cmd.createDevice.dataTypeGuid =
-			    UltraVnicChannelProtocolGuid;
-		else {
-			LOGERR("echo 1-%d-%d-%x-<type> > /proc/uislib/devce failed: invalid device type %d.",
-			     busNo, devNo, chanptr, type);
-			return -EFAULT;
-		}
-
-		result = create_device(&msg, NULL);
-
-		if (result != CONTROLVM_RESP_SUCCESS) {
-			if (type == 0)
-				LOGERR("echo 1-%d-%d-%x-0 > /proc/uislib/device {CONTROLVM_DEVICE_CREATE[vHBA] Failed} Result(%d)",
-				     busNo, devNo, chanptr, result);
-			else
-				LOGERR("echo 1-%d-%d-%x-1 > /proc/uislib/device {CONTROLVM_DEVICE_CREATE[vNIC] Failed} Result(%d)",
-				     busNo, devNo, chanptr, result);
-			return -EFAULT;
-		}
-
-	default:
-		break;
-	}
-
-	LOGERR("USAGE: echo <action>-<busNo>-<devNo>... > /proc/uislib/device");
-	LOGERR(" ");
-	LOGERR("Destruct Syntax       ControlVM Message Id");
-	LOGERR("-----------------     ------------------------");
-	LOGERR("0-<busNo>-<devNo> ==> CONTROLVM_DEVICE_DESTROY");
-	LOGERR(" ");
-	LOGERR("Construct Syntax                       ControlVM Message Id");
-	LOGERR
-	    ("----------------------------------     ----------------------- ");
-	LOGERR
-	    ("1-<busNo>-<devNo>-<chanptr>-<type> ==> CONTROLVM_DEVICE_CREATE");
-	LOGERR("      <type = 0>: vHBA");
-	LOGERR("      <type = 1>: vNIC");
-	LOGERR(" ");
-
-	return -EFAULT;
-}
-
-static ssize_t
 cycles_before_wait_proc_write(struct file *file, const char __user *buffer,
 			      size_t count, loff_t *ppos)
 {
@@ -1866,56 +1493,6 @@ cycles_before_wait_proc_write(struct file *file, const char __user *buffer,
 }
 
 static ssize_t
-reset_counts_proc_write(struct file *file, const char __user *buffer,
-			size_t count, loff_t *ppos)
-{
-	char buf[16];
-	unsigned long long new_value;
-	struct bus_info *bus;
-	int i;
-
-#define RESET_COUNTS_USE_ERROR  { \
-	LOGERR("Incorrect reset_counts Input.\n"); \
-	pr_info("Please pass the new value for the counters:\n"); \
-	pr_info("e.g. echo 0 > reset_counts\n"); \
-	return -EFAULT; \
-	}
-
-	if (count >= ARRAY_SIZE(buf))
-		return -EINVAL;
-
-	if (count == 0)
-		RESET_COUNTS_USE_ERROR;
-
-	if (copy_from_user(buf, buffer, count)) {
-		LOGERR("copy_from_user failed.\n");
-		return -EFAULT;
-	}
-	buf[count - 1] = '\0';	/* Replace the LF at the end of the
-				 * input with a NULL */
-	/* Pull out the reset_counts must be decimal integer */
-	if (sscanf(buf, "%llu", &new_value) != 1)
-		RESET_COUNTS_USE_ERROR;
-	read_lock(&BusListLock);
-	for (bus = BusListHead; bus; bus = bus->next) {
-
-		for (i = 0; i < bus->deviceCount; i++) {
-			if (bus->device[i]) {
-				bus->device[i]->first_busy_cnt = new_value;
-				bus->device[i]->moved_to_tail_cnt = new_value;
-				bus->device[i]->last_on_list_cnt = new_value;
-			}
-		}
-	}
-	read_unlock(&BusListLock);
-	tot_moved_to_tail_cnt = new_value;
-	tot_wait_cnt = new_value;
-	tot_wakeup_cnt = new_value;
-	tot_schedule_cnt = new_value;
-	return count;
-}
-
-static ssize_t
 smart_wakeup_proc_write(struct file *file, const char __user *buffer,
 			size_t count, loff_t *ppos)
 {
@@ -1948,66 +1525,6 @@ smart_wakeup_proc_write(struct file *file, const char __user *buffer,
 	return count;
 }
 
-static ssize_t
-test_proc_write(struct file *file, const char __user *buffer,
-		size_t count, loff_t *ppos)
-{
-	int i, action = 0xffff;
-	char buf[16];
-	CONTROLVM_MESSAGE msg;
-	S64 vrtc_offset;
-
-	if (count >= ARRAY_SIZE(buf))
-		return -EINVAL;
-
-	memset(&msg, 0, sizeof(CONTROLVM_MESSAGE));
-
-	if (copy_from_user(buf, buffer, count)) {
-		LOGERR("copy_from_user ****FAILED.\n");
-		return -EFAULT;
-	}
-
-	i = sscanf(buf, "%x", &action);
-
-	/* if (i < 1), i.e., if we didn't even read the action field,
-	* then action will default to 0xffff and the code below will
-	* fall through the switch and print usage. */
-	switch (action) {
-	case 6:
-		msg.hdr.Id = CONTROLVM_CHIPSET_STOP;
-		msg.hdr.Flags.responseExpected = 1;
-		stop_chipset(&msg, NULL);
-		break;
-	case 7:
-		vrtc_offset = 0;
-		LOGERR("about to issue QUERY vrtc_offset=%LX", vrtc_offset);
-		vrtc_offset = Issue_VMCALL_QUERY_GUEST_VIRTUAL_TIME_OFFSET();
-		LOGERR("result is vrtc_offset=%LX", vrtc_offset);
-		break;
-	case 8:
-		vrtc_offset = 60;
-		LOGERR("about to increase physical time by 0x%LX seconds",
-		       vrtc_offset);
-		vrtc_offset = Issue_VMCALL_UPDATE_PHYSICAL_TIME(vrtc_offset);
-		break;
-	case 9:
-		vrtc_offset = -60;
-		LOGERR("about to decrease physical time by 0x%LX seconds",
-		       vrtc_offset);
-		vrtc_offset = Issue_VMCALL_UPDATE_PHYSICAL_TIME(vrtc_offset);
-		break;
-	default:
-		LOGERR("usage: 6 for CHIPSET_STOP\n");
-		LOGERR("       7 for VMCALL_QUERY_GUEST_VIRTUAL_TIME_OFFSET()\n");
-		LOGERR("       8 for VMCALL_UPDATE_PHYSICAL_TIME(60)\n");
-		LOGERR("       9 for VMCALL_UPDATE_PHYSICAL_TIME(-60)\n");
-		return -EFAULT;
-		break;
-	}
-	return count;
-}
-
-#endif				/* UISLIB_TEST_PROC */
 static struct device_info *
 find_dev(U32 busNo, U32 devNo)
 {
@@ -2300,17 +1817,6 @@ uislib_mod_init(void)
 	/* (e.g., for /proc/uislib/vbus/<x>/info) */
 	uislib_proc_vbus_dir = proc_mkdir(DIR_VBUS_PROC_ENTRY, uislib_proc_dir);
 
-	vnic_proc_entry = proc_create(VNIC_PROC_ENTRY_FN, 0, uislib_proc_dir,
-				      &proc_vnic_fops);
-	SET_PROC_OWNER(vnic_proc_entry, THIS_MODULE);
-
-	/* for testing purposes only, create the proc entries for
-	 * enqueuing Control Channel messages */
-	chipset_proc_entry =
-	    proc_create(CHIPSET_PROC_ENTRY_FN, 0, uislib_proc_dir,
-			&proc_chipset_fops);
-	SET_PROC_OWNER(chipset_proc_entry, THIS_MODULE);
-
 	info_proc_entry = proc_create(INFO_PROC_ENTRY_FN, 0, uislib_proc_dir,
 				      &proc_info_fops);
 	SET_PROC_OWNER(info_proc_entry, THIS_MODULE);
@@ -2325,29 +1831,11 @@ uislib_mod_init(void)
 			&proc_cycles_before_wait_fops);
 	SET_PROC_OWNER(cycles_before_wait_proc_entry, THIS_MODULE);
 
-	reset_counts_proc_entry =
-	    proc_create(RESET_COUNTS_PROC_ENTRY_FN, 0, uislib_proc_dir,
-			&proc_reset_counts_fops);
-	SET_PROC_OWNER(reset_counts_proc_entry, THIS_MODULE);
-
 	smart_wakeup_proc_entry =
 	    proc_create(SMART_WAKEUP_PROC_ENTRY_FN, 0, uislib_proc_dir,
 			&proc_smart_wakeup_fops);
 	SET_PROC_OWNER(smart_wakeup_proc_entry, THIS_MODULE);
 
-#ifdef UISLIB_TEST_PROC
-	test_proc_entry = proc_create(TEST_PROC_ENTRY_FN, 0, uislib_proc_dir,
-				      &proc_test_fops);
-	SET_PROC_OWNER(test_proc_entry, THIS_MODULE);
-
-	bus_proc_entry = proc_create(BUS_PROC_ENTRY_FN, 0, uislib_proc_dir,
-				     &proc_bus_fops);
-	SET_PROC_OWNER(bus_proc_entry, THIS_MODULE);
-
-	dev_proc_entry = proc_create(DEV_PROC_ENTRY_FN, 0, uislib_proc_dir,
-				     &proc_dev_fops);
-	SET_PROC_OWNER(dev_proc_entry, THIS_MODULE);
-#endif				/* UISLIB_TEST_PROC */
 	POSTCODE_LINUX_3(DRIVER_EXIT_PC, 0, POSTCODE_SEVERITY_INFO);
 	return 0;
 }
@@ -2355,36 +1843,16 @@ uislib_mod_init(void)
 static void __exit
 uislib_mod_exit(void)
 {
-	if (disable_proc_entry)
-		remove_proc_entry(DISABLE_PROC_ENTRY_FN, uislib_proc_dir);
 	if (cycles_before_wait_proc_entry)
 		remove_proc_entry(CYCLES_BEFORE_WAIT_PROC_ENTRY_FN,
 				  uislib_proc_dir);
-	if (reset_counts_proc_entry)
-		remove_proc_entry(RESET_COUNTS_PROC_ENTRY_FN, uislib_proc_dir);
 	if (smart_wakeup_proc_entry)
 		remove_proc_entry(SMART_WAKEUP_PROC_ENTRY_FN, uislib_proc_dir);
-	if (ctrlchan_proc_entry)
-		remove_proc_entry(CTRLCHAN_PROC_ENTRY_FN, uislib_proc_dir);
-	if (pmem_proc_entry)
-		remove_proc_entry(PMEM_PROC_ENTRY_FN, uislib_proc_dir);
 	if (info_proc_entry)
 		remove_proc_entry(INFO_PROC_ENTRY_FN, uislib_proc_dir);
-	if (switch_proc_entry)
-		remove_proc_entry(SWITCH_PROC_ENTRY_FN, uislib_proc_dir);
-	if (extport_proc_entry)
-		remove_proc_entry(EXTPORT_PROC_ENTRY_FN, uislib_proc_dir);
 	if (platformnumber_proc_entry)
 		remove_proc_entry(PLATFORMNUMBER_PROC_ENTRY_FN,
 				  uislib_proc_dir);
-	if (bus_proc_entry)
-		remove_proc_entry(BUS_PROC_ENTRY_FN, uislib_proc_dir);
-	if (dev_proc_entry)
-		remove_proc_entry(DEV_PROC_ENTRY_FN, uislib_proc_dir);
-	if (vnic_proc_entry)
-		remove_proc_entry(VNIC_PROC_ENTRY_FN, uislib_proc_dir);
-	if (chipset_proc_entry)
-		remove_proc_entry(CHIPSET_PROC_ENTRY_FN, uislib_proc_dir);
 	if (uislib_proc_vbus_dir)
 		remove_proc_entry(DIR_VBUS_PROC_ENTRY, uislib_proc_dir);
 	if (uislib_proc_dir)
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH 2/7] staging: unisys: move uislib/platform proc entry to debugfs
  2014-05-12 16:38 [PATCH 0/7] staging: unisys: cleanup proc entries in uislib Benjamin Romer
  2014-05-12 16:38 ` [PATCH 1/7] staging: unisys: remove testing proc interfaces from uislib Benjamin Romer
@ 2014-05-12 16:38 ` Benjamin Romer
  2014-05-18 16:49   ` Greg KH
  2014-05-12 16:38 ` [PATCH 3/7] staging: unisys: move uislib/cycles_before_wait " Benjamin Romer
                   ` (4 subsequent siblings)
  6 siblings, 1 reply; 13+ messages in thread
From: Benjamin Romer @ 2014-05-12 16:38 UTC (permalink / raw)
  To: gregkh, sparmaintainer, linux-kernel, jkc, devel; +Cc: Benjamin Romer

Convert /proc/uislib/platform to an equivalent entry in debugfs.

Signed-off-by: Benjamin Romer <benjamin.romer@unisys.com>
---
 drivers/staging/unisys/uislib/uislib.c | 62 ++++++++++------------------------
 1 file changed, 17 insertions(+), 45 deletions(-)

diff --git a/drivers/staging/unisys/uislib/uislib.c b/drivers/staging/unisys/uislib/uislib.c
index fdc23676..b71f387 100644
--- a/drivers/staging/unisys/uislib/uislib.c
+++ b/drivers/staging/unisys/uislib/uislib.c
@@ -23,6 +23,7 @@
 #include <config/modversions.h>
 #endif
 #include <linux/module.h>
+#include <linux/debugfs.h>
 
 #include "commontypes.h"
 
@@ -91,19 +92,23 @@ static int Go_Polling_Device_Channels;
 static struct proc_dir_entry *uislib_proc_dir;
 static struct proc_dir_entry *uislib_proc_vbus_dir;
 static struct proc_dir_entry *info_proc_entry;
-static struct proc_dir_entry *platformnumber_proc_entry;
 static struct proc_dir_entry *cycles_before_wait_proc_entry;
 static struct proc_dir_entry *smart_wakeup_proc_entry;
 
 #define DIR_PROC_ENTRY "uislib"
 #define DIR_VBUS_PROC_ENTRY "vbus"
 #define INFO_PROC_ENTRY_FN "info"
-#define PLATFORMNUMBER_PROC_ENTRY_FN "platform"
 #define CYCLES_BEFORE_WAIT_PROC_ENTRY_FN "cycles_before_wait"
 #define SMART_WAKEUP_PROC_ENTRY_FN "smart_wakeup"
 #define CALLHOME_PROC_ENTRY_FN "callhome"
 #define CALLHOME_THROTTLED_PROC_ENTRY_FN "callhome_throttled"
 
+#define DIR_DEBUGFS_ENTRY "uislib"
+static struct dentry *dir_debugfs;
+
+#define PLATFORMNUMBER_DEBUGFS_ENTRY_FN "platform"
+static struct dentry *platformnumber_debugfs_read;
+
 static unsigned long long cycles_before_wait, wait_cycles;
 
 /*****************************************************/
@@ -137,12 +142,6 @@ static const struct file_operations proc_info_fops = {
 	.read = info_proc_read,
 };
 
-static ssize_t platformnumber_proc_read(struct file *file, char __user *buf,
-					size_t len, loff_t *offset);
-static const struct file_operations proc_platformnumber_fops = {
-	.read = platformnumber_proc_read,
-};
-
 static ssize_t cycles_before_wait_proc_write(struct file *file,
 					     const char __user *buffer,
 					     size_t count, loff_t *ppos);
@@ -1386,36 +1385,6 @@ info_proc_read(struct file *file, char __user *buf, size_t len, loff_t *offset)
 				       ProcReadBuffer, totalBytes);
 }
 
-static ssize_t
-platformnumber_proc_read(struct file *file, char __user *buf,
-			 size_t len, loff_t *offset)
-{
-	int length = 0;
-	char *vbuf;
-	loff_t pos = *offset;
-
-	if (pos < 0)
-		return -EINVAL;
-
-	if (pos > 0 || !len)
-		return 0;
-
-	vbuf = kzalloc(len, GFP_KERNEL);
-	if (!vbuf)
-		return -ENOMEM;
-
-	length = sprintf(vbuf, "%d\n", PlatformNumber);
-
-	if (copy_to_user(buf, vbuf, length)) {
-		kfree(vbuf);
-		return -EFAULT;
-	}
-
-	kfree(vbuf);
-	*offset += length;
-	return length;
-}
-
 /* proc/uislib/vbus/<x>/info */
 static int
 proc_info_vbus_show(struct seq_file *m, void *v)
@@ -1821,10 +1790,13 @@ uislib_mod_init(void)
 				      &proc_info_fops);
 	SET_PROC_OWNER(info_proc_entry, THIS_MODULE);
 
-	platformnumber_proc_entry =
-	    proc_create(PLATFORMNUMBER_PROC_ENTRY_FN, 0, uislib_proc_dir,
-			&proc_platformnumber_fops);
-	SET_PROC_OWNER(platformnumberinfo_proc_entry, THIS_MODULE);
+	dir_debugfs = debugfs_create_dir(DIR_DEBUGFS_ENTRY, NULL);
+
+	if (dir_debugfs) {
+		platformnumber_debugfs_read = debugfs_create_u32(
+			PLATFORMNUMBER_DEBUGFS_ENTRY_FN, 0444, dir_debugfs,
+			&PlatformNumber);
+	}
 
 	cycles_before_wait_proc_entry =
 	    proc_create(CYCLES_BEFORE_WAIT_PROC_ENTRY_FN, 0, uislib_proc_dir,
@@ -1850,9 +1822,6 @@ uislib_mod_exit(void)
 		remove_proc_entry(SMART_WAKEUP_PROC_ENTRY_FN, uislib_proc_dir);
 	if (info_proc_entry)
 		remove_proc_entry(INFO_PROC_ENTRY_FN, uislib_proc_dir);
-	if (platformnumber_proc_entry)
-		remove_proc_entry(PLATFORMNUMBER_PROC_ENTRY_FN,
-				  uislib_proc_dir);
 	if (uislib_proc_vbus_dir)
 		remove_proc_entry(DIR_VBUS_PROC_ENTRY, uislib_proc_dir);
 	if (uislib_proc_dir)
@@ -1863,6 +1832,9 @@ uislib_mod_exit(void)
 		ProcReadBuffer = NULL;
 	}
 
+	debugfs_remove(platformnumber_debugfs_read);
+	debugfs_remove(dir_debugfs);
+
 	DBGINF("goodbye.\n");
 	return;
 }
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH 3/7] staging: unisys: move uislib/cycles_before_wait proc entry to debugfs
  2014-05-12 16:38 [PATCH 0/7] staging: unisys: cleanup proc entries in uislib Benjamin Romer
  2014-05-12 16:38 ` [PATCH 1/7] staging: unisys: remove testing proc interfaces from uislib Benjamin Romer
  2014-05-12 16:38 ` [PATCH 2/7] staging: unisys: move uislib/platform proc entry to debugfs Benjamin Romer
@ 2014-05-12 16:38 ` Benjamin Romer
  2014-05-12 16:38 ` [PATCH 4/7] staging: unisys: move uislib/smart_wakeup " Benjamin Romer
                   ` (3 subsequent siblings)
  6 siblings, 0 replies; 13+ messages in thread
From: Benjamin Romer @ 2014-05-12 16:38 UTC (permalink / raw)
  To: gregkh, sparmaintainer, linux-kernel, jkc, devel; +Cc: Benjamin Romer

Convert /proc/uislib/cycles_before_wait to an equivalent entry in debugfs.

Signed-off-by: Benjamin Romer <benjamin.romer@unisys.com>
---
 drivers/staging/unisys/uislib/uislib.c | 57 +++++-----------------------------
 1 file changed, 8 insertions(+), 49 deletions(-)

diff --git a/drivers/staging/unisys/uislib/uislib.c b/drivers/staging/unisys/uislib/uislib.c
index b71f387..0f966b7 100644
--- a/drivers/staging/unisys/uislib/uislib.c
+++ b/drivers/staging/unisys/uislib/uislib.c
@@ -92,13 +92,11 @@ static int Go_Polling_Device_Channels;
 static struct proc_dir_entry *uislib_proc_dir;
 static struct proc_dir_entry *uislib_proc_vbus_dir;
 static struct proc_dir_entry *info_proc_entry;
-static struct proc_dir_entry *cycles_before_wait_proc_entry;
 static struct proc_dir_entry *smart_wakeup_proc_entry;
 
 #define DIR_PROC_ENTRY "uislib"
 #define DIR_VBUS_PROC_ENTRY "vbus"
 #define INFO_PROC_ENTRY_FN "info"
-#define CYCLES_BEFORE_WAIT_PROC_ENTRY_FN "cycles_before_wait"
 #define SMART_WAKEUP_PROC_ENTRY_FN "smart_wakeup"
 #define CALLHOME_PROC_ENTRY_FN "callhome"
 #define CALLHOME_THROTTLED_PROC_ENTRY_FN "callhome_throttled"
@@ -109,6 +107,9 @@ static struct dentry *dir_debugfs;
 #define PLATFORMNUMBER_DEBUGFS_ENTRY_FN "platform"
 static struct dentry *platformnumber_debugfs_read;
 
+#define CYCLES_BEFORE_WAIT_DEBUGFS_ENTRY_FN "cycles_before_wait"
+static struct dentry *cycles_before_wait_debugfs_read;
+
 static unsigned long long cycles_before_wait, wait_cycles;
 
 /*****************************************************/
@@ -142,14 +143,6 @@ static const struct file_operations proc_info_fops = {
 	.read = info_proc_read,
 };
 
-static ssize_t cycles_before_wait_proc_write(struct file *file,
-					     const char __user *buffer,
-					     size_t count, loff_t *ppos);
-static const struct file_operations proc_cycles_before_wait_fops = {
-	.read = uislib_proc_read_writeonly,
-	.write = cycles_before_wait_proc_write,
-};
-
 static ssize_t smart_wakeup_proc_write(struct file *file,
 				       const char __user *buffer,
 				       size_t count, loff_t *ppos);
@@ -1431,37 +1424,6 @@ uislib_proc_read_writeonly(struct file *file, char __user *buffer,
 }
 
 static ssize_t
-cycles_before_wait_proc_write(struct file *file, const char __user *buffer,
-			      size_t count, loff_t *ppos)
-{
-	char buf[16];
-
-#define CYCLES_BEFORE_WAIT_USE_ERROR  { \
-	LOGERR("Incorrect Call Home Input.\n"); \
-	pr_info("Please pass Call Home Event Parameters in the form:\n"); \
-	pr_info("EventID Category Type[parameter1][parameter2][parameter3][parameter4][parameter5][parameter6]\n"); \
-	return -EFAULT; \
-}
-	if (count >= ARRAY_SIZE(buf))
-		return -EINVAL;
-
-	if (count == 0)
-		CYCLES_BEFORE_WAIT_USE_ERROR;
-
-	if (copy_from_user(buf, buffer, count)) {
-		LOGERR("copy_from_user failed.\n");
-		return -EFAULT;
-	}
-	buf[count - 1] = '\0';	/* Replace the LF at the end of the
-				 * input with a NULL */
-	/* Pull out the cycles_before_wait must be decimal integer */
-	if (sscanf(buf, "%lld", &cycles_before_wait) != 1)
-		CYCLES_BEFORE_WAIT_USE_ERROR;
-
-	return count;
-}
-
-static ssize_t
 smart_wakeup_proc_write(struct file *file, const char __user *buffer,
 			size_t count, loff_t *ppos)
 {
@@ -1796,12 +1758,11 @@ uislib_mod_init(void)
 		platformnumber_debugfs_read = debugfs_create_u32(
 			PLATFORMNUMBER_DEBUGFS_ENTRY_FN, 0444, dir_debugfs,
 			&PlatformNumber);
-	}
 
-	cycles_before_wait_proc_entry =
-	    proc_create(CYCLES_BEFORE_WAIT_PROC_ENTRY_FN, 0, uislib_proc_dir,
-			&proc_cycles_before_wait_fops);
-	SET_PROC_OWNER(cycles_before_wait_proc_entry, THIS_MODULE);
+		cycles_before_wait_debugfs_read = debugfs_create_u64(
+			CYCLES_BEFORE_WAIT_DEBUGFS_ENTRY_FN, 0666, dir_debugfs,
+			&cycles_before_wait);
+	}
 
 	smart_wakeup_proc_entry =
 	    proc_create(SMART_WAKEUP_PROC_ENTRY_FN, 0, uislib_proc_dir,
@@ -1815,9 +1776,6 @@ uislib_mod_init(void)
 static void __exit
 uislib_mod_exit(void)
 {
-	if (cycles_before_wait_proc_entry)
-		remove_proc_entry(CYCLES_BEFORE_WAIT_PROC_ENTRY_FN,
-				  uislib_proc_dir);
 	if (smart_wakeup_proc_entry)
 		remove_proc_entry(SMART_WAKEUP_PROC_ENTRY_FN, uislib_proc_dir);
 	if (info_proc_entry)
@@ -1832,6 +1790,7 @@ uislib_mod_exit(void)
 		ProcReadBuffer = NULL;
 	}
 
+	debugfs_remove(cycles_before_wait_debugfs_read);
 	debugfs_remove(platformnumber_debugfs_read);
 	debugfs_remove(dir_debugfs);
 
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH 4/7] staging: unisys: move uislib/smart_wakeup proc entry to debugfs
  2014-05-12 16:38 [PATCH 0/7] staging: unisys: cleanup proc entries in uislib Benjamin Romer
                   ` (2 preceding siblings ...)
  2014-05-12 16:38 ` [PATCH 3/7] staging: unisys: move uislib/cycles_before_wait " Benjamin Romer
@ 2014-05-12 16:38 ` Benjamin Romer
  2014-05-12 16:38 ` [PATCH 5/7] staging: unisys: remove functions made redundant in uislib.c Benjamin Romer
                   ` (2 subsequent siblings)
  6 siblings, 0 replies; 13+ messages in thread
From: Benjamin Romer @ 2014-05-12 16:38 UTC (permalink / raw)
  To: gregkh, sparmaintainer, linux-kernel, jkc, devel; +Cc: Benjamin Romer

Convert /proc/uislib/smart_wakeup to an equivalent entry in debugfs.

Signed-off-by: Benjamin Romer <benjamin.romer@unisys.com>
---
 drivers/staging/unisys/uislib/uislib.c | 59 ++++++----------------------------
 1 file changed, 9 insertions(+), 50 deletions(-)

diff --git a/drivers/staging/unisys/uislib/uislib.c b/drivers/staging/unisys/uislib/uislib.c
index 0f966b7..a77936a 100644
--- a/drivers/staging/unisys/uislib/uislib.c
+++ b/drivers/staging/unisys/uislib/uislib.c
@@ -92,12 +92,11 @@ static int Go_Polling_Device_Channels;
 static struct proc_dir_entry *uislib_proc_dir;
 static struct proc_dir_entry *uislib_proc_vbus_dir;
 static struct proc_dir_entry *info_proc_entry;
-static struct proc_dir_entry *smart_wakeup_proc_entry;
 
 #define DIR_PROC_ENTRY "uislib"
 #define DIR_VBUS_PROC_ENTRY "vbus"
 #define INFO_PROC_ENTRY_FN "info"
-#define SMART_WAKEUP_PROC_ENTRY_FN "smart_wakeup"
+
 #define CALLHOME_PROC_ENTRY_FN "callhome"
 #define CALLHOME_THROTTLED_PROC_ENTRY_FN "callhome_throttled"
 
@@ -110,6 +109,9 @@ static struct dentry *platformnumber_debugfs_read;
 #define CYCLES_BEFORE_WAIT_DEBUGFS_ENTRY_FN "cycles_before_wait"
 static struct dentry *cycles_before_wait_debugfs_read;
 
+#define SMART_WAKEUP_DEBUGFS_ENTRY_FN "smart_wakeup"
+static struct dentry *smart_wakeup_debugfs_entry;
+
 static unsigned long long cycles_before_wait, wait_cycles;
 
 /*****************************************************/
@@ -143,14 +145,6 @@ static const struct file_operations proc_info_fops = {
 	.read = info_proc_read,
 };
 
-static ssize_t smart_wakeup_proc_write(struct file *file,
-				       const char __user *buffer,
-				       size_t count, loff_t *ppos);
-static const struct file_operations proc_smart_wakeup_fops = {
-	.read = uislib_proc_read_writeonly,
-	.write = smart_wakeup_proc_write,
-};
-
 static void
 init_msg_header(CONTROLVM_MESSAGE *msg, U32 id, uint rsp, uint svr)
 {
@@ -1423,39 +1417,6 @@ uislib_proc_read_writeonly(struct file *file, char __user *buffer,
 	return 0;
 }
 
-static ssize_t
-smart_wakeup_proc_write(struct file *file, const char __user *buffer,
-			size_t count, loff_t *ppos)
-{
-	char buf[16];
-	int new_value;
-
-#define SMART_WAKEUP_USE_ERROR  { \
-	LOGERR("Incorrect smart_wakeup Input 0 disables smart_wakeup, and 1 enables smart_wakeup.\n"); \
-	pr_info("echo 0 > smart_wakeup\n"); \
-	pr_info("echo 1 > smart_wakeup\n"); \
-	return -EFAULT; \
-	}
-
-	if (count >= ARRAY_SIZE(buf))
-		return -EINVAL;
-
-	if (count == 0)
-		SMART_WAKEUP_USE_ERROR;
-
-	if (copy_from_user(buf, buffer, count)) {
-		LOGERR("copy_from_user failed.\n");
-		return -EFAULT;
-	}
-	buf[count - 1] = '\0';	/* Replace the LF at the end of the
-				 * input with a NULL */
-	/* Pull out the smart_wakeup must be decimal integer */
-	if (sscanf(buf, "%d", &new_value) != 1)
-		SMART_WAKEUP_USE_ERROR;
-	en_smart_wakeup = new_value;
-	return count;
-}
-
 static struct device_info *
 find_dev(U32 busNo, U32 devNo)
 {
@@ -1762,12 +1723,11 @@ uislib_mod_init(void)
 		cycles_before_wait_debugfs_read = debugfs_create_u64(
 			CYCLES_BEFORE_WAIT_DEBUGFS_ENTRY_FN, 0666, dir_debugfs,
 			&cycles_before_wait);
-	}
 
-	smart_wakeup_proc_entry =
-	    proc_create(SMART_WAKEUP_PROC_ENTRY_FN, 0, uislib_proc_dir,
-			&proc_smart_wakeup_fops);
-	SET_PROC_OWNER(smart_wakeup_proc_entry, THIS_MODULE);
+		smart_wakeup_debugfs_entry = debugfs_create_bool(
+			SMART_WAKEUP_DEBUGFS_ENTRY_FN, 0666, dir_debugfs,
+			&en_smart_wakeup);
+	}
 
 	POSTCODE_LINUX_3(DRIVER_EXIT_PC, 0, POSTCODE_SEVERITY_INFO);
 	return 0;
@@ -1776,8 +1736,6 @@ uislib_mod_init(void)
 static void __exit
 uislib_mod_exit(void)
 {
-	if (smart_wakeup_proc_entry)
-		remove_proc_entry(SMART_WAKEUP_PROC_ENTRY_FN, uislib_proc_dir);
 	if (info_proc_entry)
 		remove_proc_entry(INFO_PROC_ENTRY_FN, uislib_proc_dir);
 	if (uislib_proc_vbus_dir)
@@ -1790,6 +1748,7 @@ uislib_mod_exit(void)
 		ProcReadBuffer = NULL;
 	}
 
+	debugfs_remove(smart_wakeup_debugfs_entry);
 	debugfs_remove(cycles_before_wait_debugfs_read);
 	debugfs_remove(platformnumber_debugfs_read);
 	debugfs_remove(dir_debugfs);
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH 5/7] staging: unisys: remove functions made redundant in uislib.c
  2014-05-12 16:38 [PATCH 0/7] staging: unisys: cleanup proc entries in uislib Benjamin Romer
                   ` (3 preceding siblings ...)
  2014-05-12 16:38 ` [PATCH 4/7] staging: unisys: move uislib/smart_wakeup " Benjamin Romer
@ 2014-05-12 16:38 ` Benjamin Romer
  2014-05-12 16:38 ` [PATCH 6/7] staging: unisys: move uislib/info proc entry to debugfs Benjamin Romer
  2014-05-12 16:38 ` [PATCH 7/7] staging: unisys: remove remaining proc directory entries Benjamin Romer
  6 siblings, 0 replies; 13+ messages in thread
From: Benjamin Romer @ 2014-05-12 16:38 UTC (permalink / raw)
  To: gregkh, sparmaintainer, linux-kernel, jkc, devel; +Cc: Benjamin Romer

The patches to move proc files have made the functions
uislib_proc_read_writeonly() and stop_chipset() redundant. Remove them.

Signed-off-by: Benjamin Romer <benjamin.romer@unisys.com>
---
 drivers/staging/unisys/uislib/uislib.c | 33 ---------------------------------
 1 file changed, 33 deletions(-)

diff --git a/drivers/staging/unisys/uislib/uislib.c b/drivers/staging/unisys/uislib/uislib.c
index a77936a..3a54450 100644
--- a/drivers/staging/unisys/uislib/uislib.c
+++ b/drivers/staging/unisys/uislib/uislib.c
@@ -134,11 +134,6 @@ static const struct file_operations proc_info_vbus_fops = {
 	.release = single_release,
 };
 
-static ssize_t uislib_proc_read_writeonly(struct file *file,
-					  char __user *buffer,
-					  size_t count, loff_t *ppos);
-
-
 static ssize_t info_proc_read(struct file *file, char __user *buf,
 			      size_t len, loff_t *offset);
 static const struct file_operations proc_info_fops = {
@@ -859,27 +854,6 @@ init_chipset(CONTROLVM_MESSAGE *msg, char *buf)
 }
 
 static int
-stop_chipset(CONTROLVM_MESSAGE *msg, char *buf)
-{
-	/* Check that all buses and switches have been torn down and
-	 * destroyed.
-	 */
-	if (BusListHead) {
-		/* Buses still exist. */
-		LOGERR("CONTROLVM_CHIPSET_STOP: BusListHead is not NULL");
-		return CONTROLVM_RESP_ERROR_CHIPSET_STOP_FAILED_BUS;
-	}
-	if (BusListCount) {
-		/* BusListHead is NULL, but BusListCount != 0 */
-		LOGERR("CONTROLVM_CHIPSET_STOP: BusListCount != 0");
-		return CONTROLVM_RESP_ERROR_CHIPSET_STOP_FAILED_BUS;
-	}
-
-	/* Buses are shut down. */
-	return visorchipset_chipset_notready();
-}
-
-static int
 delete_bus_glue(U32 busNo)
 {
 	CONTROLVM_MESSAGE msg;
@@ -1410,13 +1384,6 @@ proc_info_vbus_show(struct seq_file *m, void *v)
 	return 0;
 }
 
-static ssize_t
-uislib_proc_read_writeonly(struct file *file, char __user *buffer,
-	       size_t count, loff_t *ppos)
-{
-	return 0;
-}
-
 static struct device_info *
 find_dev(U32 busNo, U32 devNo)
 {
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH 6/7] staging: unisys: move uislib/info proc entry to debugfs
  2014-05-12 16:38 [PATCH 0/7] staging: unisys: cleanup proc entries in uislib Benjamin Romer
                   ` (4 preceding siblings ...)
  2014-05-12 16:38 ` [PATCH 5/7] staging: unisys: remove functions made redundant in uislib.c Benjamin Romer
@ 2014-05-12 16:38 ` Benjamin Romer
  2014-05-12 16:38 ` [PATCH 7/7] staging: unisys: remove remaining proc directory entries Benjamin Romer
  6 siblings, 0 replies; 13+ messages in thread
From: Benjamin Romer @ 2014-05-12 16:38 UTC (permalink / raw)
  To: gregkh, sparmaintainer, linux-kernel, jkc, devel; +Cc: Benjamin Romer

Convert /proc/uislib/info to an equivalent entry under debugfs.

Signed-off-by: Benjamin Romer <benjamin.romer@unisys.com>
---
 drivers/staging/unisys/uislib/uislib.c | 40 ++++++++++++++--------------------
 1 file changed, 16 insertions(+), 24 deletions(-)

diff --git a/drivers/staging/unisys/uislib/uislib.c b/drivers/staging/unisys/uislib/uislib.c
index 3a54450..5980040 100644
--- a/drivers/staging/unisys/uislib/uislib.c
+++ b/drivers/staging/unisys/uislib/uislib.c
@@ -91,11 +91,9 @@ static int Go_Polling_Device_Channels;
 
 static struct proc_dir_entry *uislib_proc_dir;
 static struct proc_dir_entry *uislib_proc_vbus_dir;
-static struct proc_dir_entry *info_proc_entry;
 
 #define DIR_PROC_ENTRY "uislib"
 #define DIR_VBUS_PROC_ENTRY "vbus"
-#define INFO_PROC_ENTRY_FN "info"
 
 #define CALLHOME_PROC_ENTRY_FN "callhome"
 #define CALLHOME_THROTTLED_PROC_ENTRY_FN "callhome_throttled"
@@ -112,6 +110,9 @@ static struct dentry *cycles_before_wait_debugfs_read;
 #define SMART_WAKEUP_DEBUGFS_ENTRY_FN "smart_wakeup"
 static struct dentry *smart_wakeup_debugfs_entry;
 
+#define INFO_DEBUGFS_ENTRY_FN "info"
+static struct dentry *info_debugfs_entry;
+
 static unsigned long long cycles_before_wait, wait_cycles;
 
 /*****************************************************/
@@ -134,10 +135,10 @@ static const struct file_operations proc_info_vbus_fops = {
 	.release = single_release,
 };
 
-static ssize_t info_proc_read(struct file *file, char __user *buf,
+static ssize_t info_debugfs_read(struct file *file, char __user *buf,
 			      size_t len, loff_t *offset);
-static const struct file_operations proc_info_fops = {
-	.read = info_proc_read,
+static const struct file_operations debugfs_info_fops = {
+	.read = info_debugfs_read,
 };
 
 static void
@@ -158,16 +159,6 @@ create_bus_proc_entries(struct bus_info *bus)
 		       bus->name);
 		return;
 	}
-	bus->proc_info = proc_create_data("info", 0, bus->proc_dir,
-					  &proc_info_vbus_fops, bus);
-	if (!bus->proc_info) {
-		LOGERR("failed to create /proc/uislib/vbus/%s/info", bus->name);
-		remove_proc_entry(bus->name, uislib_proc_vbus_dir);
-		bus->proc_dir = NULL;
-		return;
-	}
-	SET_PROC_OWNER(bus->proc_info, THIS_MODULE);
-
 }
 
 static __iomem void *
@@ -1255,7 +1246,7 @@ EXPORT_SYMBOL_GPL(uislib_cache_free);
 					       buff_len, __VA_ARGS__)
 
 static int
-info_proc_read_helper(char **buff, int *buff_len)
+info_debugfs_read_helper(char **buff, int *buff_len)
 {
 	int i, tot = 0;
 	struct bus_info *bus;
@@ -1315,7 +1306,8 @@ err_done:
 }
 
 static ssize_t
-info_proc_read(struct file *file, char __user *buf, size_t len, loff_t *offset)
+info_debugfs_read(struct file *file, char __user *buf,
+		size_t len, loff_t *offset)
 {
 	char *temp;
 	int totalBytes = 0;
@@ -1335,9 +1327,9 @@ info_proc_read(struct file *file, char __user *buf, size_t len, loff_t *offset)
 	temp = ProcReadBuffer;
 
 	if ((*offset == 0) || (!ProcReadBufferValid)) {
-		DBGINF("calling info_proc_read_helper.\n");
+		DBGINF("calling info_debugfs_read_helper.\n");
 		/* if the read fails, then -1 will be returned */
-		totalBytes = info_proc_read_helper(&temp, &remaining_bytes);
+		totalBytes = info_debugfs_read_helper(&temp, &remaining_bytes);
 		ProcReadBufferValid = 1;
 	} else
 		totalBytes = strlen(ProcReadBuffer);
@@ -1676,13 +1668,14 @@ uislib_mod_init(void)
 	/* (e.g., for /proc/uislib/vbus/<x>/info) */
 	uislib_proc_vbus_dir = proc_mkdir(DIR_VBUS_PROC_ENTRY, uislib_proc_dir);
 
-	info_proc_entry = proc_create(INFO_PROC_ENTRY_FN, 0, uislib_proc_dir,
-				      &proc_info_fops);
-	SET_PROC_OWNER(info_proc_entry, THIS_MODULE);
 
 	dir_debugfs = debugfs_create_dir(DIR_DEBUGFS_ENTRY, NULL);
 
 	if (dir_debugfs) {
+		info_debugfs_entry = debugfs_create_file(
+			INFO_DEBUGFS_ENTRY_FN, 0444, dir_debugfs, NULL,
+			&debugfs_info_fops);
+
 		platformnumber_debugfs_read = debugfs_create_u32(
 			PLATFORMNUMBER_DEBUGFS_ENTRY_FN, 0444, dir_debugfs,
 			&PlatformNumber);
@@ -1703,8 +1696,6 @@ uislib_mod_init(void)
 static void __exit
 uislib_mod_exit(void)
 {
-	if (info_proc_entry)
-		remove_proc_entry(INFO_PROC_ENTRY_FN, uislib_proc_dir);
 	if (uislib_proc_vbus_dir)
 		remove_proc_entry(DIR_VBUS_PROC_ENTRY, uislib_proc_dir);
 	if (uislib_proc_dir)
@@ -1715,6 +1706,7 @@ uislib_mod_exit(void)
 		ProcReadBuffer = NULL;
 	}
 
+	debugfs_remove(info_debugfs_entry);
 	debugfs_remove(smart_wakeup_debugfs_entry);
 	debugfs_remove(cycles_before_wait_debugfs_read);
 	debugfs_remove(platformnumber_debugfs_read);
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH 7/7] staging: unisys: remove remaining proc directory entries
  2014-05-12 16:38 [PATCH 0/7] staging: unisys: cleanup proc entries in uislib Benjamin Romer
                   ` (5 preceding siblings ...)
  2014-05-12 16:38 ` [PATCH 6/7] staging: unisys: move uislib/info proc entry to debugfs Benjamin Romer
@ 2014-05-12 16:38 ` Benjamin Romer
  6 siblings, 0 replies; 13+ messages in thread
From: Benjamin Romer @ 2014-05-12 16:38 UTC (permalink / raw)
  To: gregkh, sparmaintainer, linux-kernel, jkc, devel; +Cc: Benjamin Romer

Finally, remove /proc/uislib and all remaining, redundant entries created
under /proc/uislib/vbus.

Signed-off-by: Benjamin Romer <benjamin.romer@unisys.com>
---
 drivers/staging/unisys/uislib/uislib.c | 92 ----------------------------------
 1 file changed, 92 deletions(-)

diff --git a/drivers/staging/unisys/uislib/uislib.c b/drivers/staging/unisys/uislib/uislib.c
index 5980040..dcac042 100644
--- a/drivers/staging/unisys/uislib/uislib.c
+++ b/drivers/staging/unisys/uislib/uislib.c
@@ -89,12 +89,6 @@ static DEFINE_SEMAPHORE(Lock_Polling_Device_Channels);	/* unlocked */
 static DECLARE_WAIT_QUEUE_HEAD(Wakeup_Polling_Device_Channels);
 static int Go_Polling_Device_Channels;
 
-static struct proc_dir_entry *uislib_proc_dir;
-static struct proc_dir_entry *uislib_proc_vbus_dir;
-
-#define DIR_PROC_ENTRY "uislib"
-#define DIR_VBUS_PROC_ENTRY "vbus"
-
 #define CALLHOME_PROC_ENTRY_FN "callhome"
 #define CALLHOME_THROTTLED_PROC_ENTRY_FN "callhome_throttled"
 
@@ -119,22 +113,6 @@ static unsigned long long cycles_before_wait, wait_cycles;
 /* local functions                                   */
 /*****************************************************/
 
-static int proc_info_vbus_show(struct seq_file *m, void *v);
-static int
-proc_info_vbus_open(struct inode *inode, struct file *filp)
-{
-	/* proc_info_vbus_show will grab this from seq_file.private: */
-	struct bus_info *bus = PDE_DATA(inode);
-	return single_open(filp, proc_info_vbus_show, bus);
-}
-
-static const struct file_operations proc_info_vbus_fops = {
-	.open = proc_info_vbus_open,
-	.read = seq_read,
-	.llseek = seq_lseek,
-	.release = single_release,
-};
-
 static ssize_t info_debugfs_read(struct file *file, char __user *buf,
 			      size_t len, loff_t *offset);
 static const struct file_operations debugfs_info_fops = {
@@ -150,17 +128,6 @@ init_msg_header(CONTROLVM_MESSAGE *msg, U32 id, uint rsp, uint svr)
 	msg->hdr.Flags.server = svr;
 }
 
-static void
-create_bus_proc_entries(struct bus_info *bus)
-{
-	bus->proc_dir = proc_mkdir(bus->name, uislib_proc_vbus_dir);
-	if (!bus->proc_dir) {
-		LOGERR("failed to create /proc/uislib/vbus/%s directory",
-		       bus->name);
-		return;
-	}
-}
-
 static __iomem void *
 init_vbus_channel(U64 channelAddr, U32 channelBytes, int isServer)
 {
@@ -296,7 +263,6 @@ create_bus(CONTROLVM_MESSAGE *msg, char *buf)
 			    CONTROLVM_RESP_ERROR_VIRTPCI_DRIVER_CALLBACK_ERROR;
 		}
 	}
-	create_bus_proc_entries(bus);
 
 	/* add bus at the head of our list */
 	write_lock(&BusListLock);
@@ -373,14 +339,6 @@ destroy_bus(CONTROLVM_MESSAGE *msg, char *buf)
 		read_unlock(&BusListLock);
 		return CONTROLVM_RESP_ERROR_ALREADY_DONE;
 	}
-	if (bus->proc_info) {
-		remove_proc_entry("info", bus->proc_dir);
-		bus->proc_info = NULL;
-	}
-	if (bus->proc_dir) {
-		remove_proc_entry(bus->name, uislib_proc_vbus_dir);
-		bus->proc_dir = NULL;
-	}
 	if (bus->pBusChannel) {
 		uislib_iounmap(bus->pBusChannel);
 		bus->pBusChannel = NULL;
@@ -1338,44 +1296,6 @@ info_debugfs_read(struct file *file, char __user *buf,
 				       ProcReadBuffer, totalBytes);
 }
 
-/* proc/uislib/vbus/<x>/info */
-static int
-proc_info_vbus_show(struct seq_file *m, void *v)
-{
-	struct bus_info *bus = m->private;
-	int i, devInfoCount, x;
-	char buf[999];
-
-	if (bus == NULL)
-		return 0;
-	seq_printf(m, "Client device / client driver info for %s partition (vbus #%d):\n",
-		   bus->partitionName, bus->busNo);
-	if ((bus->busChannelBytes == 0) || (bus->pBusChannel == NULL))
-		return 0;
-	devInfoCount =
-	    (bus->busChannelBytes -
-	     sizeof(ULTRA_VBUS_CHANNEL_PROTOCOL)) /
-	    sizeof(ULTRA_VBUS_DEVICEINFO);
-	x = VBUSCHANNEL_devInfoToStringBuffer(&bus->pBusChannel->ChpInfo, buf,
-					      sizeof(buf) - 1, -1);
-	buf[x] = '\0';
-	seq_printf(m, "%s", buf);
-	x = VBUSCHANNEL_devInfoToStringBuffer(&bus->pBusChannel->BusInfo,
-					      buf, sizeof(buf) - 1, -1);
-	buf[x] = '\0';
-	seq_printf(m, "%s", buf);
-	for (i = 0; i < devInfoCount; i++) {
-		x = VBUSCHANNEL_devInfoToStringBuffer(&bus->pBusChannel->
-						      DevInfo[i], buf,
-						      sizeof(buf) - 1, i);
-		if (x > 0) {
-			buf[x] = '\0';
-			seq_printf(m, "%s", buf);
-		}
-	}
-	return 0;
-}
-
 static struct device_info *
 find_dev(U32 busNo, U32 devNo)
 {
@@ -1663,14 +1583,7 @@ uislib_mod_init(void)
 	 * then map this physical address to a virtual address. */
 	POSTCODE_LINUX_2(DRIVER_ENTRY_PC, POSTCODE_SEVERITY_INFO);
 
-	/* create the proc entries for the channels */
-	uislib_proc_dir = proc_mkdir(DIR_PROC_ENTRY, NULL);
-	/* (e.g., for /proc/uislib/vbus/<x>/info) */
-	uislib_proc_vbus_dir = proc_mkdir(DIR_VBUS_PROC_ENTRY, uislib_proc_dir);
-
-
 	dir_debugfs = debugfs_create_dir(DIR_DEBUGFS_ENTRY, NULL);
-
 	if (dir_debugfs) {
 		info_debugfs_entry = debugfs_create_file(
 			INFO_DEBUGFS_ENTRY_FN, 0444, dir_debugfs, NULL,
@@ -1696,11 +1609,6 @@ uislib_mod_init(void)
 static void __exit
 uislib_mod_exit(void)
 {
-	if (uislib_proc_vbus_dir)
-		remove_proc_entry(DIR_VBUS_PROC_ENTRY, uislib_proc_dir);
-	if (uislib_proc_dir)
-		remove_proc_entry(DIR_PROC_ENTRY, NULL);
-
 	if (ProcReadBuffer) {
 		vfree(ProcReadBuffer);
 		ProcReadBuffer = NULL;
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 13+ messages in thread

* Re: [PATCH 2/7] staging: unisys: move uislib/platform proc entry to debugfs
  2014-05-12 16:38 ` [PATCH 2/7] staging: unisys: move uislib/platform proc entry to debugfs Benjamin Romer
@ 2014-05-18 16:49   ` Greg KH
  2014-05-19 14:42     ` Romer, Benjamin M
  0 siblings, 1 reply; 13+ messages in thread
From: Greg KH @ 2014-05-18 16:49 UTC (permalink / raw)
  To: Benjamin Romer; +Cc: sparmaintainer, linux-kernel, jkc, devel

On Mon, May 12, 2014 at 12:38:30PM -0400, Benjamin Romer wrote:
> Convert /proc/uislib/platform to an equivalent entry in debugfs.
> 
> Signed-off-by: Benjamin Romer <benjamin.romer@unisys.com>
> ---
>  drivers/staging/unisys/uislib/uislib.c | 62 ++++++++++------------------------
>  1 file changed, 17 insertions(+), 45 deletions(-)
> 
> diff --git a/drivers/staging/unisys/uislib/uislib.c b/drivers/staging/unisys/uislib/uislib.c
> index fdc23676..b71f387 100644
> --- a/drivers/staging/unisys/uislib/uislib.c
> +++ b/drivers/staging/unisys/uislib/uislib.c
> @@ -23,6 +23,7 @@
>  #include <config/modversions.h>
>  #endif
>  #include <linux/module.h>
> +#include <linux/debugfs.h>
>  
>  #include "commontypes.h"
>  
> @@ -91,19 +92,23 @@ static int Go_Polling_Device_Channels;
>  static struct proc_dir_entry *uislib_proc_dir;
>  static struct proc_dir_entry *uislib_proc_vbus_dir;
>  static struct proc_dir_entry *info_proc_entry;
> -static struct proc_dir_entry *platformnumber_proc_entry;
>  static struct proc_dir_entry *cycles_before_wait_proc_entry;
>  static struct proc_dir_entry *smart_wakeup_proc_entry;
>  
>  #define DIR_PROC_ENTRY "uislib"
>  #define DIR_VBUS_PROC_ENTRY "vbus"
>  #define INFO_PROC_ENTRY_FN "info"
> -#define PLATFORMNUMBER_PROC_ENTRY_FN "platform"
>  #define CYCLES_BEFORE_WAIT_PROC_ENTRY_FN "cycles_before_wait"
>  #define SMART_WAKEUP_PROC_ENTRY_FN "smart_wakeup"
>  #define CALLHOME_PROC_ENTRY_FN "callhome"
>  #define CALLHOME_THROTTLED_PROC_ENTRY_FN "callhome_throttled"
>  
> +#define DIR_DEBUGFS_ENTRY "uislib"
> +static struct dentry *dir_debugfs;
> +
> +#define PLATFORMNUMBER_DEBUGFS_ENTRY_FN "platform"
> +static struct dentry *platformnumber_debugfs_read;

There's no need to keep this dentry around, you can just remove all the
debugfs files in your directory recursively when you exit.  That will
save you code and logic overall.

I'll leave this for now, you can clean that up in a future patch.

Also, why are these entries moving to debugfs at all?  Why are they
needed?  Who will use them?  Are tools relying on them to be there?

thanks,

greg k-h

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 2/7] staging: unisys: move uislib/platform proc entry to debugfs
  2014-05-18 16:49   ` Greg KH
@ 2014-05-19 14:42     ` Romer, Benjamin M
  2014-05-19 19:57       ` Dan Carpenter
  0 siblings, 1 reply; 13+ messages in thread
From: Romer, Benjamin M @ 2014-05-19 14:42 UTC (permalink / raw)
  To: Greg KH
  Cc: *S-Par-Maintainer, linux-kernel@vger.kernel.org, jkc@redhat.com,
	devel@driverdev.osuosl.org

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset="utf-8", Size: 1132 bytes --]

On Sun, 2014-05-18 at 09:49 -0700, Greg KH wrote:
> There's no need to keep this dentry around, you can just remove all the
> debugfs files in your directory recursively when you exit.  That will
> save you code and logic overall.

Ah, thanks! I wasn't aware that I could do that. That's an easy fix. :)


> I'll leave this for now, you can clean that up in a future patch.

Thanks! I'll do that. :)


> Also, why are these entries moving to debugfs at all?  Why are they
> needed?  Who will use them?  Are tools relying on them to be there?

The tuning entries are sometimes used to help adjust the behavior of our
IO service partitions for better performance. I'm not sure about the
platform entry, but I'll find out if anyone still uses it. If not, I'll
send another patch to remove it entirely.

> thanks,
> 
> greg k-h

-- 
Ben Romer | Software Engineer |
Virtual Systems Development 

Unisys Corporation |  2476
Swedesford Rd |  Malvern, PA 19355
|  610-648-7140



ÿôèº{.nÇ+‰·Ÿ®‰­†+%ŠËÿ±éݶ\x17¥Šwÿº{.nÇ+‰·¥Š{±þG«éÿŠ{ayº\x1dʇڙë,j\a­¢f£¢·hšïêÿ‘êçz_è®\x03(­éšŽŠÝ¢j"ú\x1a¶^[m§ÿÿ¾\a«þG«éÿ¢¸?™¨è­Ú&£ø§~á¶iO•æ¬z·švØ^\x14\x04\x1a¶^[m§ÿÿÃ\fÿ¶ìÿ¢¸?–I¥

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 2/7] staging: unisys: move uislib/platform proc entry to debugfs
  2014-05-19 14:42     ` Romer, Benjamin M
@ 2014-05-19 19:57       ` Dan Carpenter
  2014-05-20  1:09         ` Greg KH
  0 siblings, 1 reply; 13+ messages in thread
From: Dan Carpenter @ 2014-05-19 19:57 UTC (permalink / raw)
  To: Romer, Benjamin M
  Cc: Greg KH, devel@driverdev.osuosl.org, *S-Par-Maintainer,
	linux-kernel@vger.kernel.org

On Mon, May 19, 2014 at 09:42:22AM -0500, Romer, Benjamin M wrote:
> On Sun, 2014-05-18 at 09:49 -0700, Greg KH wrote:
> > Also, why are these entries moving to debugfs at all?  Why are they
> > needed?  Who will use them?  Are tools relying on them to be there?
> 
> The tuning entries are sometimes used to help adjust the behavior of our
> IO service partitions for better performance.

That sounds like it really belongs in sysfs instead of debugfs.

regards,
dan carpenter


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 2/7] staging: unisys: move uislib/platform proc entry to debugfs
  2014-05-19 19:57       ` Dan Carpenter
@ 2014-05-20  1:09         ` Greg KH
  2014-05-20 13:20           ` Romer, Benjamin M
  0 siblings, 1 reply; 13+ messages in thread
From: Greg KH @ 2014-05-20  1:09 UTC (permalink / raw)
  To: Dan Carpenter, Romer, Benjamin M, devel@driverdev.osuosl.org,
	*S-Par-Maintainer, linux-kernel@vger.kernel.org

On Mon, May 19, 2014 at 10:57:08PM +0300, Dan Carpenter wrote:
> On Mon, May 19, 2014 at 09:42:22AM -0500, Romer, Benjamin M wrote:
> > On Sun, 2014-05-18 at 09:49 -0700, Greg KH wrote:
> > > Also, why are these entries moving to debugfs at all?  Why are they
> > > needed?  Who will use them?  Are tools relying on them to be there?
> > 
> > The tuning entries are sometimes used to help adjust the behavior of our
> > IO service partitions for better performance.
> 
> That sounds like it really belongs in sysfs instead of debugfs.

Exactly.  debugfs files are for "debugging".  Consider them files that
your driver can work properly if no one ever touches them.

"tuning" files imply something that has to be touched by users.
Ideally, you would never need such a thing as no one wants to have to
write things to files to make the kernel work better.  But if you really
need it, they should be sysfs files, with the needed documentation.

thanks,

greg k-h

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 2/7] staging: unisys: move uislib/platform proc entry to debugfs
  2014-05-20  1:09         ` Greg KH
@ 2014-05-20 13:20           ` Romer, Benjamin M
  0 siblings, 0 replies; 13+ messages in thread
From: Romer, Benjamin M @ 2014-05-20 13:20 UTC (permalink / raw)
  To: Greg KH
  Cc: *S-Par-Maintainer, Dan Carpenter, devel@driverdev.osuosl.org,
	linux-kernel@vger.kernel.org

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset="utf-8", Size: 2349 bytes --]

On Tue, 2014-05-20 at 10:09 +0900, Greg KH wrote:
> On Mon, May 19, 2014 at 10:57:08PM +0300, Dan Carpenter wrote:
> > On Mon, May 19, 2014 at 09:42:22AM -0500, Romer, Benjamin M wrote:
> > > On Sun, 2014-05-18 at 09:49 -0700, Greg KH wrote:
> > > > Also, why are these entries moving to debugfs at all?  Why are they
> > > > needed?  Who will use them?  Are tools relying on them to be there?
> > > 
> > > The tuning entries are sometimes used to help adjust the behavior of our
> > > IO service partitions for better performance.
> > 
> > That sounds like it really belongs in sysfs instead of debugfs.
> 
> Exactly.  debugfs files are for "debugging".  Consider them files that
> your driver can work properly if no one ever touches them.
> 

That is what I was trying to say - these are used when someone is
changing the behavior of IO service partitions, not the guest partition
where the driver is running. No typical user will need or want to change
these settings - only someone working on the IO *server side*
performance will need access to them. All of our drivers communicate
with another partition to perform IO on shared devices. By turning off
features, or changing the rate of messaging in the channels, it makes it
easier for someone working on the IO service partition to tune the
performance there. The guest itself isn't being tuned.

> "tuning" files imply something that has to be touched by users.
> Ideally, you would never need such a thing as no one wants to have to
> write things to files to make the kernel work better.  

That is indeed what we want - a user should not need to touch these
settings. Someone manipulating these particular settings would be
tweaking performance on the server end, like I was trying to say. I
believe that most of our proc entries are really debug-time tweaks of
that sort, and not something a typical user would ever want to touch.

> But if you really
> need it, they should be sysfs files, with the needed documentation.
> 
> thanks,
> 
> greg k-h

Sorry about the confusion! 

-- 
Ben Romer | Software Engineer |
Virtual Systems Development 

Unisys Corporation |  2476
Swedesford Rd |  Malvern, PA 19355
|  610-648-7140



ÿôèº{.nÇ+‰·Ÿ®‰­†+%ŠËÿ±éݶ\x17¥Šwÿº{.nÇ+‰·¥Š{±þG«éÿŠ{ayº\x1dʇڙë,j\a­¢f£¢·hšïêÿ‘êçz_è®\x03(­éšŽŠÝ¢j"ú\x1a¶^[m§ÿÿ¾\a«þG«éÿ¢¸?™¨è­Ú&£ø§~á¶iO•æ¬z·švØ^\x14\x04\x1a¶^[m§ÿÿÃ\fÿ¶ìÿ¢¸?–I¥

^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2014-05-20 13:20 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-05-12 16:38 [PATCH 0/7] staging: unisys: cleanup proc entries in uislib Benjamin Romer
2014-05-12 16:38 ` [PATCH 1/7] staging: unisys: remove testing proc interfaces from uislib Benjamin Romer
2014-05-12 16:38 ` [PATCH 2/7] staging: unisys: move uislib/platform proc entry to debugfs Benjamin Romer
2014-05-18 16:49   ` Greg KH
2014-05-19 14:42     ` Romer, Benjamin M
2014-05-19 19:57       ` Dan Carpenter
2014-05-20  1:09         ` Greg KH
2014-05-20 13:20           ` Romer, Benjamin M
2014-05-12 16:38 ` [PATCH 3/7] staging: unisys: move uislib/cycles_before_wait " Benjamin Romer
2014-05-12 16:38 ` [PATCH 4/7] staging: unisys: move uislib/smart_wakeup " Benjamin Romer
2014-05-12 16:38 ` [PATCH 5/7] staging: unisys: remove functions made redundant in uislib.c Benjamin Romer
2014-05-12 16:38 ` [PATCH 6/7] staging: unisys: move uislib/info proc entry to debugfs Benjamin Romer
2014-05-12 16:38 ` [PATCH 7/7] staging: unisys: remove remaining proc directory entries Benjamin Romer

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox