[ofw] RE: Make all funcions no-pagable?

James Yang jyang at xsigo.com
Wed Mar 11 12:26:44 PDT 2009


ALLOC_PRAGMA is defined by DDK, undefined it may have side-effect. Also
I didn't find a simple way to do undefined it(just for testing purpose).

Thanks,
James

-----Original Message-----
From: Alex Estrin [mailto:alex.estrin at qlogic.com] 
Sent: Wednesday, March 11, 2009 12:21 PM
To: James Yang; Tzachi Dar; ofw at lists.openfabrics.org
Subject: RE: Make all funcions no-pagable?

Hi,

Wouldn't it be simpler to undef ALLOC_PRAGMA, if it set anywhere
globally?
Thanks,
Alex.


> -----Original Message-----
> From: ofw-bounces at lists.openfabrics.org
[mailto:ofw-bounces at lists.openfabrics.org] On Behalf Of James
> Yang
> Sent: Wednesday, March 11, 2009 2:19 PM
> To: Tzachi Dar; ofw at lists.openfabrics.org
> Subject: [ofw] RE: Make all funcions no-pagable?
>
> Here is the patch, it just removes all paged code to make it simple.
>
>
>
> Thanks,
>
> James
>
>
>
> Index: core/bus/kernel/bus_driver.c
>
> ===================================================================
>
> --- core/bus/kernel/bus_driver.c    (revision 2022)
>
> +++ core/bus/kernel/bus_driver.c (working copy)
>
> @@ -126,11 +126,6 @@
>
>  #pragma alloc_text (INIT, DriverEntry)
>
>  #pragma alloc_text (INIT, __read_machine_name)
>
>  #pragma alloc_text (INIT, __read_registry)
>
> -#pragma alloc_text (PAGE, bus_drv_unload)
>
> -#pragma alloc_text (PAGE, bus_drv_open)
>
> -#pragma alloc_text (PAGE, bus_drv_close)
>
> -#pragma alloc_text (PAGE, bus_drv_ioctl)
>
> -#pragma alloc_text (PAGE_PNP, bus_drv_sysctl)
>
>  #endif
>
>
>
>
>
> Index: core/bus/kernel/bus_iou_mgr.c
>
> ===================================================================
>
> --- core/bus/kernel/bus_iou_mgr.c            (revision 2022)
>
> +++ core/bus/kernel/bus_iou_mgr.c         (working copy)
>
> @@ -207,29 +207,7 @@
>
>                         OUT
cl_irp_action_t* const
> p_action );
>
>
>
>
>
> -/* All PnP code is called at passive, so it can all be paged out. */
>
> -#ifdef ALLOC_PRAGMA
>
> -#pragma alloc_text (PAGE, iou_start)
>
> -#pragma alloc_text (PAGE, iou_query_remove)
>
> -#pragma alloc_text (PAGE, iou_release_resources)
>
> -#pragma alloc_text (PAGE, iou_remove)
>
> -#pragma alloc_text (PAGE, iou_surprise_remove)
>
> -#pragma alloc_text (PAGE, iou_query_capabilities)
>
> -#pragma alloc_text (PAGE, iou_query_target_relations)
>
> -#pragma alloc_text (PAGE, iou_query_device_id)
>
> -#pragma alloc_text (PAGE, iou_query_hardware_ids)
>
> -#pragma alloc_text (PAGE, iou_query_compatible_ids)
>
> -#pragma alloc_text (PAGE, iou_query_unique_id)
>
> -#pragma alloc_text (PAGE, iou_query_description)
>
> -#pragma alloc_text (PAGE, iou_query_location)
>
> -#pragma alloc_text (PAGE, iou_query_bus_info)
>
> -#pragma alloc_text (PAGE, iou_query_interface)
>
> -#pragma alloc_text (PAGE_PNP, iou_set_power)
>
> -#pragma alloc_text (PAGE, iou_mgr_iou_add)
>
> -#pragma alloc_text (PAGE, iou_mgr_iou_remove)
>
> -#endif
>
>
>
> -
>
>  /*
>
>   * Global virtual function pointer tables shared between all
>
>   * instances of Port PDOs.
>
> Index: core/bus/kernel/bus_port_mgr.c
>
> ===================================================================
>
> --- core/bus/kernel/bus_port_mgr.c          (revision 2022)
>
> +++ core/bus/kernel/bus_port_mgr.c       (working copy)
>
> @@ -198,30 +198,7 @@
>
>                         OUT
cl_irp_action_t* const
> p_action );
>
>
>
>
>
> -/* All PnP code is called at passive, so it can all be paged out. */
>
> -#ifdef ALLOC_PRAGMA
>
> -#pragma alloc_text (PAGE, port_start)
>
> -#pragma alloc_text (PAGE, port_query_remove)
>
> -#pragma alloc_text (PAGE, port_release_resources)
>
> -#pragma alloc_text (PAGE, port_remove)
>
> -#pragma alloc_text (PAGE, port_surprise_remove)
>
> -#pragma alloc_text (PAGE, port_query_capabilities)
>
> -#pragma alloc_text (PAGE, port_query_target_relations)
>
> -#pragma alloc_text (PAGE, port_query_device_id)
>
> -#pragma alloc_text (PAGE, port_query_hardware_ids)
>
> -#pragma alloc_text (PAGE, port_query_compatible_ids)
>
> -#pragma alloc_text (PAGE, port_query_unique_id)
>
> -#pragma alloc_text (PAGE, port_query_description)
>
> -#pragma alloc_text (PAGE, port_query_location)
>
> -#pragma alloc_text (PAGE, port_query_bus_info)
>
> -#pragma alloc_text (PAGE, port_query_ipoib_ifc)
>
> -#pragma alloc_text (PAGE, port_query_interface)
>
> -#pragma alloc_text (PAGE_PNP, port_set_power)
>
> -#pragma alloc_text (PAGE, port_mgr_port_add)
>
> -#pragma alloc_text (PAGE, port_mgr_port_remove)
>
> -#endif
>
>
>
> -
>
>  /*
>
>   * Global virtual function pointer tables shared between all
>
>   * instances of Port PDOs.
>
> Index: core/iou/kernel/iou_driver.c
>
> ===================================================================
>
> --- core/iou/kernel/iou_driver.c      (revision 2022)
>
> +++ core/iou/kernel/iou_driver.c   (working copy)
>
> @@ -99,11 +99,6 @@
>
>  #ifdef ALLOC_PRAGMA
>
>  #pragma alloc_text (INIT, DriverEntry)
>
>  #pragma alloc_text (INIT, __read_registry)
>
> -#pragma alloc_text (PAGE, iou_unload)
>
> -#pragma alloc_text (PAGE, iou_drv_open)
>
> -#pragma alloc_text (PAGE, iou_drv_close)
>
> -#pragma alloc_text (PAGE, iou_drv_ioctl)
>
> -#pragma alloc_text (PAGE_PNP, iou_sysctl)
>
>  #endif
>
>
>
>
>
> Index: core/iou/kernel/iou_ioc_mgr.c
>
> ===================================================================
>
> --- core/iou/kernel/iou_ioc_mgr.c  (revision 2022)
>
> +++ core/iou/kernel/iou_ioc_mgr.c           (working copy)
>
> @@ -190,28 +190,7 @@
>
>                         OUT
cl_irp_action_t* const
> p_action );
>
>
>
>
>
> -/* All PnP code is called at passive, so it can all be paged out. */
>
> -#ifdef ALLOC_PRAGMA
>
> -#pragma alloc_text (PAGE, ioc_start)
>
> -#pragma alloc_text (PAGE, ioc_release_resources)
>
> -#pragma alloc_text (PAGE, ioc_remove)
>
> -#pragma alloc_text (PAGE, ioc_surprise_remove)
>
> -#pragma alloc_text (PAGE, ioc_query_capabilities)
>
> -#pragma alloc_text (PAGE, ioc_query_target_relations)
>
> -#pragma alloc_text (PAGE, ioc_query_device_id)
>
> -#pragma alloc_text (PAGE, ioc_query_hardware_ids)
>
> -#pragma alloc_text (PAGE, ioc_query_compatible_ids)
>
> -#pragma alloc_text (PAGE, ioc_query_unique_id)
>
> -#pragma alloc_text (PAGE, ioc_query_description)
>
> -#pragma alloc_text (PAGE, ioc_query_location)
>
> -#pragma alloc_text (PAGE, ioc_query_bus_info)
>
> -#pragma alloc_text (PAGE, ioc_query_interface)
>
> -#pragma alloc_text (PAGE_PNP, ioc_set_power)
>
> -#pragma alloc_text (PAGE, ioc_mgr_ioc_add)
>
> -#pragma alloc_text (PAGE, ioc_mgr_ioc_remove)
>
> -#endif
>
>
>
> -
>
>  /*
>
>   * Global virtual function pointer tables shared between all
>
>   * instances of Port PDOs.
>
> Index: core/iou/kernel/iou_pnp.c
>
> ===================================================================
>
> --- core/iou/kernel/iou_pnp.c        (revision 2022)
>
> +++ core/iou/kernel/iou_pnp.c     (working copy)
>
> @@ -98,19 +98,7 @@
>
>                         OUT
cl_irp_action_t* const
> p_action );
>
>
>
>
>
> -/* All PnP code is called at passive, so it can all be paged out. */
>
> -#ifdef ALLOC_PRAGMA
>
> -#pragma alloc_text (PAGE, iou_add_device)
>
> -#pragma alloc_text (PAGE, fdo_start)
>
> -#pragma alloc_text (PAGE, fdo_query_remove)
>
> -#pragma alloc_text (PAGE, fdo_release_resources)
>
> -#pragma alloc_text (PAGE, fdo_query_capabilities)
>
> -#pragma alloc_text (PAGE, fdo_query_iou_relations)
>
> -#pragma alloc_text (PAGE_PNP, __fdo_query_power)
>
> -#pragma alloc_text (PAGE_PNP, __fdo_set_power)
>
> -#endif
>
>
>
> -
>
>  /* Global virtual function pointer tables shared between all
instances of FDO. */
>
>  static const cl_vfptr_pnp_po_t                vfptr_fdo_pnp = {
>
>             "IB IOU",
>
> Index: hw/mlx4/kernel/bus/drv/drv.c
>
> ===================================================================
>
> --- hw/mlx4/kernel/bus/drv/drv.c   (revision 2022)
>
> +++ hw/mlx4/kernel/bus/drv/drv.c            (working copy)
>
> @@ -31,12 +31,6 @@
>
>
>
>  #ifdef ALLOC_PRAGMA
>
>  #pragma alloc_text (INIT, DriverEntry)
>
> -#pragma alloc_text (PAGE, EvtDeviceAdd)
>
> -#pragma alloc_text (PAGE, EvtDriverUnload)
>
> -#pragma alloc_text (PAGE, EvtDeviceD0Entry)
>
> -#pragma alloc_text (PAGE, EvtDeviceD0Exit)
>
> -#pragma alloc_text (PAGE, EvtPrepareHardware)
>
> -#pragma alloc_text (PAGE, EvtReleaseHardware)
>
>  #endif
>
>
>
>  #define DRV_VERSION "1.0"
>
> Index: hw/mlx4/kernel/bus/drv/pci.c
>
> ===================================================================
>
> --- hw/mlx4/kernel/bus/drv/pci.c   (revision 2022)
>
> +++ hw/mlx4/kernel/bus/drv/pci.c            (working copy)
>
> @@ -128,11 +128,6 @@
>
>             IN
PCI_COMMON_CONFIG* const  pConfig );
>
>
>
>
>
> -#ifdef ALLOC_PRAGMA
>
> -#pragma alloc_text (PAGE, __get_bus_ifc)
>
> -#pragma alloc_text (PAGE, __restore_pci_config)
>
> -#endif
>
> -
>
>  /*
>
>   * Returns the offset in configuration space of the PCI-X
capabilites.
>
>   */
>
> Index: hw/mlx4/kernel/bus/drv/pdo.c
>
> ===================================================================
>
> --- hw/mlx4/kernel/bus/drv/pdo.c  (revision 2022)
>
> +++ hw/mlx4/kernel/bus/drv/pdo.c           (working copy)
>
> @@ -9,10 +9,6 @@
>
>  #include "pdo.tmh"
>
>  #endif
>
>
>
> -#ifdef ALLOC_PRAGMA
>
> -#pragma alloc_text(PAGE, create_pdo)
>
> -#endif
>
> -
>
>  #define MAX_ID_LEN 80
>
>
>
>  NTSTATUS
>
> Index: hw/mlx4/kernel/bus/drv/wmi.c
>
> ===================================================================
>
> --- hw/mlx4/kernel/bus/drv/wmi.c  (revision 2022)
>
> +++ hw/mlx4/kernel/bus/drv/wmi.c           (working copy)
>
> @@ -30,13 +30,6 @@
>
>  #include "wmi.tmh"
>
>  #endif
>
>
>
> -#ifdef ALLOC_PRAGMA
>
> -#pragma alloc_text(PAGE,WmiRegistration)
>
> -#pragma alloc_text(PAGE,EvtStdDataSetItem)
>
> -#pragma alloc_text(PAGE,EvtStdDataSetInstance)
>
> -#pragma alloc_text(PAGE,EvtStdDataQueryInstance)
>
> -#endif
>
> -
>
>  NTSTATUS
>
>  WmiRegistration(
>
>             WDFDEVICE      Device
>
> Index: hw/mlx4/kernel/hca/drv.c
>
> ===================================================================
>
> --- hw/mlx4/kernel/hca/drv.c        (revision 2022)
>
> +++ hw/mlx4/kernel/hca/drv.c     (working copy)
>
> @@ -95,12 +95,6 @@
>
>
>
>  #ifdef ALLOC_PRAGMA
>
>  #pragma alloc_text (INIT, DriverEntry)
>
> -#pragma alloc_text (PAGE, EvtDeviceAdd)
>
> -#pragma alloc_text (PAGE, EvtDriverUnload)
>
> -#pragma alloc_text (PAGE, EvtDeviceD0Entry)
>
> -#pragma alloc_text (PAGE, EvtDeviceD0Exit)
>
> -#pragma alloc_text (PAGE, EvtPrepareHardware)
>
> -#pragma alloc_text (PAGE, EvtReleaseHardware)
>
>  #endif
>
>
>
>  static NTSTATUS
>
> @@ -1092,23 +1086,6 @@
>
>  #ifdef ALLOC_PRAGMA
>
>  #pragma alloc_text (INIT, DriverEntry)
>
>  #pragma alloc_text (INIT, __read_registry)
>
> -#pragma alloc_text (PAGE, hca_drv_unload)
>
> -#pragma alloc_text (PAGE, hca_sysctl)
>
> -#pragma alloc_text (PAGE, hca_add_device)
>
> -#pragma alloc_text (PAGE, hca_start)
>
> -#pragma alloc_text (PAGE, hca_query_stop)
>
> -#pragma alloc_text (PAGE, hca_stop)
>
> -#pragma alloc_text (PAGE, hca_cancel_stop)
>
> -#pragma alloc_text (PAGE, hca_query_remove)
>
> -#pragma alloc_text (PAGE, hca_release_resources)
>
> -#pragma alloc_text (PAGE, hca_cancel_remove)
>
> -#pragma alloc_text (PAGE, hca_surprise_remove)
>
> -#pragma alloc_text (PAGE, hca_query_capabilities)
>
> -#pragma alloc_text (PAGE, hca_query_interface)
>
> -#pragma alloc_text (PAGE, hca_query_pnp_state)
>
> -#pragma alloc_text (PAGE, hca_set_power)
>
> -#pragma alloc_text (PAGE, __alloc_hca_ifc)
>
> -#pragma alloc_text (PAGE, __get_ci_interface)
>
>  #endif
>
>
>
>
>
> Index: hw/mlx4/kernel/hca/wmi.c
>
> ===================================================================
>
> --- hw/mlx4/kernel/hca/wmi.c       (revision 2022)
>
> +++ hw/mlx4/kernel/hca/wmi.c    (working copy)
>
> @@ -42,13 +42,6 @@
>
>  #include "wmi.tmh"
>
>  #endif
>
>
>
> -#ifdef ALLOC_PRAGMA
>
> -#pragma alloc_text(PAGE,WmiRegistration)
>
> -#pragma alloc_text(PAGE,EvtStdDataSetItem)
>
> -#pragma alloc_text(PAGE,EvtStdDataSetInstance)
>
> -#pragma alloc_text(PAGE,EvtStdDataQueryInstance)
>
> -#endif
>
> -
>
>  NTSTATUS
>
>  WmiRegistration(
>
>             WDFDEVICE      Device
>
> Index: hw/mthca/kernel/hca_driver.c
>
> ===================================================================
>
> --- hw/mthca/kernel/hca_driver.c  (revision 2022)
>
> +++ hw/mthca/kernel/hca_driver.c           (working copy)
>
> @@ -165,8 +165,6 @@
>
>  #ifdef ALLOC_PRAGMA
>
>  #pragma alloc_text (INIT, DriverEntry)
>
>  #pragma alloc_text (INIT, __read_registry)
>
> -#pragma alloc_text (PAGE, hca_drv_unload)
>
> -#pragma alloc_text (PAGE, hca_sysctl)
>
>  #endif
>
>
>
>  NTSTATUS
>
> Index: hw/mthca/kernel/hca_pci.c
>
> ===================================================================
>
> --- hw/mthca/kernel/hca_pci.c     (revision 2022)
>
> +++ hw/mthca/kernel/hca_pci.c  (working copy)
>
> @@ -99,13 +99,6 @@
>
>             IN                                             const int
> is_bridge );
>
>
>
>
>
> -#ifdef ALLOC_PRAGMA
>
> -#pragma alloc_text (PAGE, __get_bus_ifc)
>
> -#pragma alloc_text (PAGE, __fixup_pci_capabilities)
>
> -#pragma alloc_text (PAGE, __save_pci_config)
>
> -#pragma alloc_text (PAGE, __restore_pci_config)
>
> -#endif
>
> -
>
>  /*
>
>   * Returns the offset in configuration space of the PCI-X
capabilites.
>
>   */
>
> Index: hw/mthca/kernel/hca_pnp.c
>
> ===================================================================
>
> --- hw/mthca/kernel/hca_pnp.c    (revision 2022)
>
> +++ hw/mthca/kernel/hca_pnp.c (working copy)
>
> @@ -124,25 +124,7 @@
>
>             IN
DEVICE_OBJECT* const
> p_dev_obj );
>
>
>
>
>
> -#ifdef ALLOC_PRAGMA
>
> -#pragma alloc_text (PAGE, hca_add_device)
>
> -#pragma alloc_text (PAGE, hca_start)
>
> -#pragma alloc_text (PAGE, hca_query_stop)
>
> -#pragma alloc_text (PAGE, hca_stop)
>
> -#pragma alloc_text (PAGE, hca_cancel_stop)
>
> -#pragma alloc_text (PAGE, hca_query_remove)
>
> -#pragma alloc_text (PAGE, hca_release_resources)
>
> -#pragma alloc_text (PAGE, hca_cancel_remove)
>
> -#pragma alloc_text (PAGE, hca_surprise_remove)
>
> -#pragma alloc_text (PAGE, hca_query_capabilities)
>
> -#pragma alloc_text (PAGE, hca_query_interface)
>
> -#pragma alloc_text (PAGE, hca_query_pnp_state)
>
> -#pragma alloc_text (PAGE, hca_set_power)
>
> -#pragma alloc_text (PAGE, __alloc_hca_ifc)
>
> -#pragma alloc_text (PAGE, __get_ci_interface)
>
> -#endif
>
>
>
> -
>
>  static cl_vfptr_pnp_po_t vfptrHcaPnp;
>
>
>
>
>
> Index: hw/mthca/kernel/mt_cache.c
>
> ===================================================================
>
> --- hw/mthca/kernel/mt_cache.c  (revision 2022)
>
> +++ hw/mthca/kernel/mt_cache.c           (working copy)
>
> @@ -47,12 +47,7 @@
>
>
>
>  #include "ib_cache.h"
>
>
>
> -#ifdef ALLOC_PRAGMA
>
> -#pragma alloc_text (PAGE, ib_cache_setup)
>
> -#pragma alloc_text (PAGE, ib_cache_cleanup)
>
> -#endif
>
>
>
> -
>
>  #pragma warning( disable : 4200)
>
>  struct ib_pkey_cache {
>
>             int             table_len;
>
> Index: hw/mthca/kernel/mthca_av.c
>
> ===================================================================
>
> --- hw/mthca/kernel/mthca_av.c   (revision 2022)
>
> +++ hw/mthca/kernel/mthca_av.c            (working copy)
>
> @@ -43,11 +43,6 @@
>
>  #include "mthca_av.tmh"
>
>  #endif
>
>
>
> -#ifdef ALLOC_PRAGMA
>
> -#pragma alloc_text (PAGE, mthca_init_av_table)
>
> -#pragma alloc_text (PAGE, mthca_cleanup_av_table)
>
> -#endif
>
> -
>
>
>
>  struct mthca_av {
>
>             __be32 port_pd;
>
> Index: hw/mthca/kernel/mthca_cq.c
>
> ===================================================================
>
> --- hw/mthca/kernel/mthca_cq.c  (revision 2022)
>
> +++ hw/mthca/kernel/mthca_cq.c           (working copy)
>
> @@ -49,12 +49,6 @@
>
>  #include "mthca_memfree.h"
>
>  #include "mthca_wqe.h"
>
>
>
> -
>
> -#ifdef ALLOC_PRAGMA
>
> -#pragma alloc_text (PAGE, mthca_init_cq_table)
>
> -#pragma alloc_text (PAGE, mthca_cleanup_cq_table)
>
> -#endif
>
> -
>
>  enum {
>
>             MTHCA_MAX_DIRECT_CQ_SIZE = 4 * PAGE_SIZE
>
>  };
>
> Index: hw/mthca/kernel/mthca_eq.c
>
> ===================================================================
>
> --- hw/mthca/kernel/mthca_eq.c  (revision 2022)
>
> +++ hw/mthca/kernel/mthca_eq.c           (working copy)
>
> @@ -55,18 +55,6 @@
>
>                                                      struct mthca_eq
*eq);
>
>
>
>
>
> -
>
> -#ifdef ALLOC_PRAGMA
>
> -#pragma alloc_text (PAGE, mthca_map_reg)
>
> -#pragma alloc_text (PAGE, mthca_map_eq_regs)
>
> -#pragma alloc_text (PAGE, mthca_init_eq_table)
>
> -#pragma alloc_text (PAGE, mthca_unmap_eq_regs)
>
> -#pragma alloc_text (PAGE, mthca_map_eq_icm)
>
> -#pragma alloc_text (PAGE, mthca_unmap_eq_icm)
>
> -#pragma alloc_text (PAGE, mthca_create_eq)
>
> -#pragma alloc_text (PAGE, mthca_cleanup_eq_table)
>
> -#endif
>
> -
>
>  enum {
>
>             MTHCA_NUM_ASYNC_EQE = 0x80,
>
>             MTHCA_NUM_CMD_EQE   = 0x80,
>
> Index: hw/mthca/kernel/mthca_mcg.c
>
> ===================================================================
>
> --- hw/mthca/kernel/mthca_mcg.c            (revision 2022)
>
> +++ hw/mthca/kernel/mthca_mcg.c         (working copy)
>
> @@ -42,11 +42,6 @@
>
>  #include "mthca_cmd.h"
>
>
>
>
>
> -#ifdef ALLOC_PRAGMA
>
> -#pragma alloc_text (PAGE, mthca_init_mcg_table)
>
> -#pragma alloc_text (PAGE, mthca_cleanup_mcg_table)
>
> -#endif
>
> -
>
>  struct mthca_mgm {
>
>             __be32 next_gid_index;
>
>             u32    reserved[3];
>
> Index: hw/mthca/kernel/mthca_mr.c
>
> ===================================================================
>
> --- hw/mthca/kernel/mthca_mr.c  (revision 2022)
>
> +++ hw/mthca/kernel/mthca_mr.c           (working copy)
>
> @@ -46,13 +46,6 @@
>
>  static int mthca_buddy_init(struct mthca_buddy *buddy, int
max_order);
>
>  static void mthca_buddy_cleanup(struct mthca_buddy *buddy);
>
>
>
> -#ifdef ALLOC_PRAGMA
>
> -#pragma alloc_text (PAGE, mthca_buddy_init)
>
> -#pragma alloc_text (PAGE, mthca_buddy_cleanup)
>
> -#pragma alloc_text (PAGE, mthca_init_mr_table)
>
> -#pragma alloc_text (PAGE, mthca_cleanup_mr_table)
>
> -#endif
>
> -
>
>  struct mthca_mtt {
>
>             struct mthca_buddy *buddy;
>
>             int                 order;
>
> Index: hw/mthca/kernel/mthca_pd.c
>
> ===================================================================
>
> --- hw/mthca/kernel/mthca_pd.c  (revision 2022)
>
> +++ hw/mthca/kernel/mthca_pd.c           (working copy)
>
> @@ -37,11 +37,6 @@
>
>  #include "mthca_dev.h"
>
>
>
>
>
> -#ifdef ALLOC_PRAGMA
>
> -#pragma alloc_text (PAGE, mthca_init_pd_table)
>
> -#pragma alloc_text (PAGE, mthca_cleanup_pd_table)
>
> -#endif
>
> -
>
>  int mthca_pd_alloc(struct mthca_dev *dev, int privileged, struct
mthca_pd *pd)
>
>  {
>
>             int err = 0;
>
> Index: hw/mthca/kernel/mthca_qp.c
>
> ===================================================================
>
> --- hw/mthca/kernel/mthca_qp.c  (revision 2022)
>
> +++ hw/mthca/kernel/mthca_qp.c           (working copy)
>
> @@ -51,11 +51,6 @@
>
>  #include "mthca_wqe.h"
>
>
>
>
>
> -#ifdef ALLOC_PRAGMA
>
> -#pragma alloc_text (PAGE, mthca_init_qp_table)
>
> -#pragma alloc_text (PAGE, mthca_cleanup_qp_table)
>
> -#endif
>
> -
>
>  enum {
>
>             MTHCA_MAX_DIRECT_QP_SIZE = 4 * PAGE_SIZE,
>
>             MTHCA_ACK_REQ_FREQ       = 10,
>
> Index: hw/mthca/kernel/mthca_srq.c
>
> ===================================================================
>
> --- hw/mthca/kernel/mthca_srq.c (revision 2022)
>
> +++ hw/mthca/kernel/mthca_srq.c          (working copy)
>
> @@ -45,12 +45,6 @@
>
>  #include "mthca_wqe.h"
>
>
>
>
>
> -#ifdef ALLOC_PRAGMA
>
> -#pragma alloc_text (PAGE, mthca_init_srq_table)
>
> -#pragma alloc_text (PAGE, mthca_cleanup_srq_table)
>
> -#endif
>
> -
>
> -
>
>  enum {
>
>             MTHCA_MAX_DIRECT_SRQ_SIZE = 4 * PAGE_SIZE
>
>  };
>
> Index: tests/alts/kernel/alts_driver.c
>
> ===================================================================
>
> --- tests/alts/kernel/alts_driver.c   (revision 2022)
>
> +++ tests/alts/kernel/alts_driver.c            (working copy)
>
> @@ -87,9 +87,6 @@
>
>
>
>  #ifdef ALLOC_PRAGMA
>
>  #pragma alloc_text (INIT, DriverEntry)
>
> -#pragma alloc_text (PAGE, alts_drv_unload)
>
> -//#pragma alloc_text (PAGE, alts_ioctl)
>
> -#pragma alloc_text (PAGE, alts_sysctl)
>
>  #endif
>
>
>
>
>
>
>
> ________________________________
>
> From: Tzachi Dar [mailto:tzachid at mellanox.co.il]
> Sent: Tuesday, March 03, 2009 7:18 AM
> To: James Yang; ofw at lists.openfabrics.org
> Subject: RE: Make all funcions no-pagable?
>
>
>
> Hi James,
>
>
>
> Please prepare a patch that removes all the #pragma alloc_text from
the code and we will apply it.
>
>
>
> Thanks
>
> Tzachi & Leonid
>
>
>
>
> ________________________________
>
>
>       From: James Yang [mailto:jyang at xsigo.com]
>       Sent: Tuesday, March 03, 2009 1:29 AM
>       To: ofw at lists.openfabrics.org
>       Cc: Tzachi Dar
>       Subject: Make all funcions no-pagable?
>
>       Hi,
>
>
>
>       We discussed this topic before. Today I saw system hangs during
shutdown again. This time
> function __restore_pci_config caused the page out problem and stopped
forever. Attached is the stack.
>
>
>
>       Is there any simple way to disable all the page pragma? Or we
have to go to each line the take
> them out?
>
>       #pragma alloc_text (PAGE, __restore_pci_config).
>
>
>
>       Thanks,
>
>       James
>
>
>
>
------------------------------------------------------------------------
----------
>
>       fffffadf`243d4680 fffff800`01027682 nt!KiSwapContext+0x85
>
>       fffffadf`243d4800 fffff800`0102828e nt!KiSwapThread+0x3c9
>
>       fffffadf`243d4860 fffff800`01056806
nt!KeWaitForSingleObject+0x5a6
>
>       fffffadf`243d48e0 fffff800`01017091
nt!MiWaitForInPageComplete+0x66
>
>       fffffadf`243d4970 fffff800`01043d24 nt!MiDispatchFault+0x1845
>
>       fffffadf`243d4ab0 fffff800`0102d459 nt!MmAccessFault+0xbb3
>
>       fffffadf`243d4b80 fffffadf`29367b60 nt!KiPageFault+0x119
>
>       fffffadf`243d4d18 fffffadf`2933ff57
mlx4_bus!__restore_pci_config [c:\windows-openib\src\winib-
> 1864a\hw\mlx4\kernel\bus\drv\pci.c @ 163]
>
>       fffffadf`243d4d20 fffffadf`2934cc63 mlx4_bus!pci_hca_reset+0x667
[c:\windows-openib\src\winib-
> 1864a\hw\mlx4\kernel\bus\drv\pci.c @ 381]
>
>       fffffadf`243d4de0 fffffadf`2933c077
mlx4_bus!mlx4_remove_one+0x1bf [c:\windows-openib\src\winib-
> 1864a\hw\mlx4\kernel\bus\net\main.c @ 1090]
>
>       fffffadf`243d4e20 fffffadf`2933c502 mlx4_bus!__stop_card+0x37
[c:\windows-openib\src\winib-
> 1864a\hw\mlx4\kernel\bus\drv\drv.c @ 355]
>
>       fffffadf`243d4e50 fffffadf`294e3217
mlx4_bus!EvtDeviceD0Exit+0xf2 [c:\windows-openib\src\winib-
> 1864a\hw\mlx4\kernel\bus\drv\drv.c @ 414]
>
>       fffffadf`243d4ea0 fffffadf`294e2d91
wdf01000!FxPkgPnp::PowerGotoDxIoStopped+0x243
>
>       fffffadf`243d4f50 fffffadf`294e1f5d
wdf01000!FxPkgPnp::PowerGotoDNotZeroIoStopped+0x9
>
>       fffffadf`243d4f80 fffffadf`294e1837
wdf01000!FxPkgPnp::PowerEnterNewState+0x345
>
>       fffffadf`243d50f0 fffffadf`294e1596
wdf01000!FxPkgPnp::PowerProcessEventInner+0x13f
>
>       fffffadf`243d51c0 fffffadf`294f29a6
wdf01000!FxPkgPnp::PowerProcessEvent+0x436
>
>       fffffadf`243d5290 fffffadf`294ee72d
wdf01000!FxPkgPnp::NotPowerPolOwnerGotoDx+0xe
>
>       fffffadf`243d52c0 fffffadf`294edecc
wdf01000!FxPkgPnp::PowerPolicyEnterNewState+0x345
>
>       fffffadf`243d5430 fffffadf`294edc29
wdf01000!FxPkgPnp::PowerPolicyProcessEventInner+0x144





More information about the ofw mailing list