[ofw] RE: Make all funcions no-pagable?
Alex Estrin
alex.estrin at qlogic.com
Wed Mar 11 12:20:54 PDT 2009
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