From: Christoph Hellwig <hch@infradead.org>
To: linux-ia64@vger.kernel.org
Subject: Re: [PATCH 2/4] SGI Altix cross partition functionality
Date: Wed, 16 Jun 2004 17:28:22 +0000 [thread overview]
Message-ID: <20040616172822.GA15988@infradead.org> (raw)
In-Reply-To: <20040616163514.GB27891@sgi.com>
> + default m if (IA64_SGI_SN2 || IA64_GENERIC)
really?
> +#ifndef SN_PROM
> +#include <linux/kernel.h>
> +#include <linux/interrupt.h>
> +#include <linux/module.h>
> +#include <asm/sn/intr.h>
> +#include <asm/sn/sn_sal.h>
> +#include <asm/sn/xp.h>
> +#else /* ! SN_PROM */
> +#include "xp.h"
> +#include "xpc_stubs.h"
> +#endif /* ! SN_PROM */
Please kill all the prom compat gunk. Once non-SGI people touch it you can't
easily merge it back anyway for license reasons.
> +
> +
> +/*
> + * Initialize the XPC interface to inidicate that XPC isn't loaded.
> + */
> +static xpc_t xpc_notloaded(void) { return xpcNotLoaded; }
> +
> +xpc_interface_t xpc_interface = {
> + (void (*)(int)) xpc_notloaded,
> + (void (*)(int)) xpc_notloaded,
> + (xpc_t (*)(partid_t, int, u32, void **)) xpc_notloaded,
> + (xpc_t (*)(partid_t, int, void *)) xpc_notloaded,
> + (xpc_t (*)(partid_t, int, void *, xpc_notify_func_t, void *))
> + xpc_notloaded,
> + (void (*)(partid_t, int, void *)) xpc_notloaded,
> + (xpc_t (*)(partid_t, void *)) xpc_notloaded
> +};
Yikes. So you define a method table where only one possible provider exists
anyway? Please merge xp and xpc into a single module and get rid off all this
junk.
> +#ifdef CONFIG_KDB
> +
> +static void
> +xpc_kdb_print_users(xpc_registration_t *registration, int ch_number)
> +{
> + kdb_printf("xpc_registrations[channel=%d] (0x%p):\n", ch_number,
> + (void *) registration);
> +
> + kdb_printf("\t&sema=0x%p\n", (void *) ®istration->sema);
> + kdb_printf("\tfunc=0x%p\n", (void *) registration->func);
> + kdb_printf("\tkey=0x%p\n", registration->key);
> + kdb_printf("\tnentries=%d\n", registration->nentries);
> + kdb_printf("\tmsg_size=%d\n", registration->msg_size);
> + kdb_printf("\tassigned_limit=%d\n", registration->assigned_limit);
> + kdb_printf("\tidle_limit=%d\n", registration->idle_limit);
> +}
IIRC Keith objected against adding kdb-related code to mainline in the past.
And IMHO it's indeed better placed in the kdb patch.
> + XP_ASSERT(ch_number >= 0 && ch_number < XPC_NCHANNELS);
> + XP_ASSERT(payload_size != 0 && nentries != 0);
> + XP_ASSERT(func != NULL);
> + XP_ASSERT(assigned_limit != 0 && idle_limit <= assigned_limit);
Please use BUG_ON()
> + xpc_registration_t *registration;
An d btw, please get rid of all these awfull typedefs.
> +/*
> + * Wrapper for bte_copy() that should it return a failure status will retry
> + * the bte_copy() once in the hope that the failure was due to a temporary
> + * aberration (i.e., the link going down temporarily).
> + *
> + * See bte_copy for definition of the input parameters.
> + */
> +static __inline__ bte_result_t
> +xp_bte_copy(u64 src, u64 dest, u64 len, u64 mode, void *notification)
> +{
> + bte_result_t ret;
> +
> +
> + ret = bte_copy(src, dest, len, mode, notification);
> +
> + if (ret != BTE_SUCCESS) {
> + if (!in_interrupt()) {
> + cond_resched();
> + }
If you're ever calling this from under a spinlock you're screwed..
> + *
> + * CHANNEL | USER | PURPOSE
> + * ---------+---------------+---------------------------------------------
> + * 0 | XPMEM | cross partition memory driver
> + * ---------+---------------+---------------------------------------------
What's that? Can't find it in your driver submission.
> +typedef struct {
> + volatile u8 flags; /* FOR XPC INTERNAL USE ONLY */
volatile is always a BIG warning sign. What does it try to do?
> +//>>> is inline a good idea with all the strings?
> +static __inline__ char *
> +xpc_get_ascii_reason_code(xpc_t reason)
No.
> Index: linux/include/asm-ia64/sn/xp_dbgtk.h
> =================================> --- linux.orig/include/asm-ia64/sn/xp_dbgtk.h 1969-12-31 18:00:00.000000000 -0600
> +++ linux/include/asm-ia64/sn/xp_dbgtk.h 2004-04-23 12:55:57.000000000 -0500
> @@ -0,0 +1,52 @@
> +/*
> + * This file is subject to the terms and conditions of the GNU General Public
> + * License. See the file "COPYING" in the main directory of this archive
> + * for more details.
> + *
> + * Copyright (C) 2004 Silicon Graphics, Inc. All rights reserved.
> + */
> +
> +
> +/*
> + * Cross Partition (XP)'s dbgtk related definitions.
> + */
> +
> +
> +#ifndef _ASM_IA64_SN_XP_DBGTK_H
> +#define _ASM_IA64_SN_XP_DBGTK_H
> +
> +
> +#if defined(CONFIG_DBGTK) || defined(CONFIG_DBGTK_MODULE)
> +
> +#include <linux/dbgtk.h>
> +
> +#else /* defined(CONFIG_DBGTK) || defined(CONFIG_DBGTK_MODULE) */
> +
> +#define DECLARE_DPRINTK(_mn, _hl, _dcs, _dps, _sd)
> +#define EXTERN_DPRINTK(_mn)
> +#define REG_DPRINTK(_mn)
> +#define UNREG_DPRINTK(_mn)
> +#define DPRINTK(_mn, mask, fmt...)
> +#define DPRINTK_ALWAYS(_mn, mask, fmt...) printk(fmt)
Bah, please kill all that crap.
next prev parent reply other threads:[~2004-06-16 17:28 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-06-16 16:35 [PATCH 2/4] SGI Altix cross partition functionality Dean Nelson
2004-06-16 17:28 ` Christoph Hellwig [this message]
2004-06-16 20:22 ` Keith Owens
2004-07-29 18:36 ` Dean Nelson
2004-08-31 19:22 ` [PATCH 2/4] SGI Altix cross partition functionality (1st revision) Dean Nelson
2004-09-01 10:19 ` Robin Holt
2004-09-04 11:12 ` Christoph Hellwig
2004-09-04 11:15 ` Christoph Hellwig
2004-09-04 16:35 ` Russ Anderson
2004-09-04 16:55 ` Christoph Hellwig
2004-09-04 16:57 ` Christoph Hellwig
2004-09-05 11:45 ` Robin Holt
2004-12-20 18:45 ` Dean Nelson
2004-12-21 12:20 ` Dean Nelson
2005-01-05 11:35 ` Christoph Hellwig
2005-01-05 11:35 ` Christoph Hellwig
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=20040616172822.GA15988@infradead.org \
--to=hch@infradead.org \
--cc=linux-ia64@vger.kernel.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.