powerpc/vas: Export HVWC to debugfs
Export the VAS Window context information to debugfs. We need to hold a mutex when closing the window to prevent a race with the debugfs read(). Rather than introduce a per-instance mutex, we use the global vas_mutex for now, since it is not heavily contended. The window->cop field is only relevant to a receive window so we were not setting it for a send window (which is is paired to a receive window anyway). But to simplify reporting in debugfs, set the 'cop' field for the send window also. Signed-off-by: Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
This commit is contained in:

committed by
Michael Ellerman

parent
d4ef61b5e8
commit
ece4e51291
@@ -13,6 +13,8 @@
|
||||
#include <linux/idr.h>
|
||||
#include <asm/vas.h>
|
||||
#include <linux/io.h>
|
||||
#include <linux/dcache.h>
|
||||
#include <linux/mutex.h>
|
||||
|
||||
/*
|
||||
* Overview of Virtual Accelerator Switchboard (VAS).
|
||||
@@ -317,6 +319,9 @@ struct vas_instance {
|
||||
struct mutex mutex;
|
||||
struct vas_window *rxwin[VAS_COP_TYPE_MAX];
|
||||
struct vas_window *windows[VAS_WINDOWS_PER_CHIP];
|
||||
|
||||
char *dbgname;
|
||||
struct dentry *dbgdir;
|
||||
};
|
||||
|
||||
/*
|
||||
@@ -334,6 +339,9 @@ struct vas_window {
|
||||
pid_t pid; /* Linux process id of owner */
|
||||
int wcreds_max; /* Window credits */
|
||||
|
||||
char *dbgname;
|
||||
struct dentry *dbgdir;
|
||||
|
||||
/* Fields applicable only to send windows */
|
||||
void *paste_kaddr;
|
||||
char *paste_addr_name;
|
||||
@@ -394,7 +402,13 @@ struct vas_winctx {
|
||||
enum vas_notify_after_count notify_after_count;
|
||||
};
|
||||
|
||||
extern struct mutex vas_mutex;
|
||||
|
||||
extern struct vas_instance *find_vas_instance(int vasid);
|
||||
extern void vas_init_dbgdir(void);
|
||||
extern void vas_instance_init_dbgdir(struct vas_instance *vinst);
|
||||
extern void vas_window_init_dbgdir(struct vas_window *win);
|
||||
extern void vas_window_free_dbgdir(struct vas_window *win);
|
||||
|
||||
static inline void vas_log_write(struct vas_window *win, char *name,
|
||||
void *regptr, u64 val)
|
||||
|
Reference in New Issue
Block a user