Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 30 Mar 2015 18:26:25 -0600
From:      Randall Stewart <rrs@netflix.com>
To:        John Baldwin <jhb@freebsd.org>
Cc:        svn-src-head@freebsd.org, Randall Stewart <rrs@freebsd.org>, svn-src-all@freebsd.org, src-committers@freebsd.org
Subject:   Re: svn commit: r280785 - in head/sys: kern netgraph/atm/sscop netgraph/atm/uni sys
Message-ID:  <26047F0C-A975-4DAC-9077-31B5EC4902DA@netflix.com>
In-Reply-To: <32487399.PTq7ESkWJT@ralph.baldwin.cx>
References:  <201503281250.t2SCoOkt020297@svn.freebsd.org> <32487399.PTq7ESkWJT@ralph.baldwin.cx>

next in thread | previous in thread | raw e-mail | index | archive | help

On Mar 30, 2015, at 9:16 AM, John Baldwin <jhb@freebsd.org> wrote:

> On Saturday, March 28, 2015 12:50:24 PM Randall Stewart wrote:
>> Author: rrs
>> Date: Sat Mar 28 12:50:24 2015
>> New Revision: 280785
>> URL: https://svnweb.freebsd.org/changeset/base/280785
>>=20
>> Log:
>>  Change the callout to supply -1 to indicate we are not changing
>>  CPU, also add protection against invalid CPU's as well as
>>  split c_flags and c_iflags so that if a user plays with the active
>>  flag (the one expected to be played with by callers in MPSAFE) =
without
>>  a lock, it won't adversely affect the callout system by causing a =
corrupt
>>  list. This also means that all callers need to use the macros and =
*not*
>>  play with the falgs directly (like netgraph used to).
>>=20
>>  Differential Revision: htts://reviews.freebsd.org/D1894
>>  Reviewed by: .. timed out but looked at by jhb, imp, adrian hselasky
>>               tested by hiren and netflix.
>>  Sponsored by:	Netflix Inc.
>=20
> Please use NOCPU rather than -1 directly for the CPU field when not
> moving a callout.
>=20

John:

I have made *all* of your suggested changes, adopting the comments and
moving migration to kern_timeout.c.. thanks..

Now as to the=20

-1 -> NOCPU

This is like pulling on a string on your sweater.. the only sensible =
solution that
I could come up with after chatting with Lawrence is to add=20
#include <sys/proc.h>
to everyone that uses the callout.h and does not have it already=85 =
(putting it into callout.h does not work) .. sigh..

Now for this cosmetic change I end up with the following changes (and as =
yet I have
not built LINT or universe so there may be more).. I have spent about 2 =
hours on this
so far and I can at least build a kernel with the change for amd64 :-0

Here is what has to change, do you really think that this is worth it?

Note I did not look into moving NOCPU in proc.h it says it means no CPU =
is present
which is sort of the meaning we want.. I am not sure if the define could =
be moved .. but
that too may be yet another string...

Is this worth it, or do you have another idea on how best to do this???

R

---------------------------

M       amd64/vmm/io/vatpit.c
M       amd64/vmm/io/vhpet.c
M       amd64/vmm/io/vlapic.c
M       amd64/vmm/io/vrtc.c
M       cam/ctl/ctl.c
M       cam/ctl/ctl_frontend_iscsi.c
M       cam/ctl/ctl_tpc.c
M       cam/scsi/scsi_cd.c
M       cam/scsi/scsi_enc.c
M       conf/kern.opts.mk
M       dev/aac/aac.c
M       dev/aacraid/aacraid.c
M       dev/advansys/advansys.c
M       dev/advansys/advlib.c
M       dev/advansys/adwcam.c
M       dev/ae/if_ae.c
M       dev/age/if_age.c
M       dev/aha/aha.c
M       dev/ahci/ahci.c
M       dev/aic/aic.c
M       dev/aic7xxx/ahc_isa.c
M       dev/aic7xxx/ahc_pci.c
M       dev/aic7xxx/aic7770.c
M       dev/aic7xxx/aic79xx_osm.h
M       dev/aic7xxx/aic7xxx.c
M       dev/aic7xxx/aic7xxx_93cx6.c
M       dev/aic7xxx/aic7xxx_osm.c
M       dev/aic7xxx/aic7xxx_pci.c
M       dev/aic7xxx/aic7xxx_reg_print.c
M       dev/alc/if_alc.c
M       dev/ale/if_ale.c
M       dev/ata/ata-all.c
M       dev/ata/ata-lowlevel.c
M       dev/ath/if_ath.c
M       dev/ath/if_ath_led.c
M       dev/atkbdc/psm.c
M       dev/bce/if_bce.c
M       dev/bfe/if_bfe.c
M       dev/bge/if_bge.c
M       dev/buslogic/bt.c
M       dev/bwn/if_bwn.c
M       dev/bxe/bxe.h
M       dev/cas/if_cas.c
M       dev/ciss/ciss.c
M       dev/cmx/cmx.c
M       dev/cs/if_cs.c
M       dev/cxgbe/t4_main.c
M       dev/cxgbe/t4_sge.c
M       dev/dc/if_dc.c
M       dev/de/if_de.c
M       dev/dpt/dpt_scsi.c
M       dev/e1000/if_em.c
M       dev/e1000/if_igb.c
M       dev/e1000/if_lem.c
M       dev/ed/if_ed.c
M       dev/ep/if_ep.c
M       dev/esp/ncr53c9x.c
M       dev/fatm/if_fatm.c
M       dev/fe/if_fe.c
M       dev/firewire/firewire.c
M       dev/firewire/sbp.c
M       dev/firewire/sbp_targ.c
M       dev/fxp/if_fxp.c
M       dev/gem/if_gem.c
M       dev/hme/if_hme.c
M       dev/hpt27xx/os_bsd.h
M       dev/hptiop/hptiop.c
M       dev/hptnr/os_bsd.h
M       dev/hptrr/os_bsd.h
M       dev/ida/ida.c
M       dev/iir/iir.c
M       dev/ips/ips.c
M       dev/ipw/if_ipw.c
M       dev/isci/isci.h
M       dev/iscsi/iscsi.c
M       dev/iwn/if_iwn.c
M       dev/le/lance.c
M       dev/led/led.c
M       dev/lge/if_lge.c
M       dev/lmc/if_lmc.c
M       dev/malo/if_malo.c
M       dev/mcd/mcd.c
M       dev/mlx/mlx.c
M       dev/mpr/mpr_sas.c
M       dev/mps/mps_sas.c
M       dev/mps/mps_sas_lsi.c
M       dev/msk/if_msk.c
M       dev/mvs/mvs.c
M       dev/mwl/if_mwl.c
M       dev/mxge/if_mxge.c
M       dev/my/if_my.c
M       dev/nfe/if_nfe.c
M       dev/nge/if_nge.c
M       dev/ntb/if_ntb/if_ntb.c
M       dev/ntb/ntb_hw/ntb_hw.c
M       dev/patm/if_patm_tx.c
M       dev/pcn/if_pcn.c
M       dev/ppbus/lpt.c
M       dev/ppbus/pps.c
M       dev/ral/rt2560.c
M       dev/ral/rt2661.c
M       dev/ral/rt2860.c
M       dev/re/if_re.c
M       dev/rl/if_rl.c
M       dev/scd/scd.c
M       dev/sdhci/sdhci.c
M       dev/sf/if_sf.c
M       dev/sge/if_sge.c
M       dev/siis/siis.c
M       dev/sis/if_sis.c
M       dev/sk/if_sk.c
M       dev/sn/if_sn.c
M       dev/ste/if_ste.c
M       dev/stge/if_stge.c
M       dev/ti/if_ti.c
M       dev/tl/if_tl.c
M       dev/twa/tw_osl_freebsd.c
M       dev/tx/if_tx.c
M       dev/txp/if_txp.c
M       dev/uart/uart_core.c
M       dev/usb/controller/ehci.c
M       dev/usb/controller/ohci.c
M       dev/usb/controller/uhci.c
M       dev/usb/controller/xhci_pci.c
M       dev/usb/gadget/g_audio.c
M       dev/usb/gadget/g_keyboard.c
M       dev/usb/gadget/g_modem.c
M       dev/usb/gadget/g_mouse.c
M       dev/usb/input/atp.c
M       dev/usb/input/ums.c
M       dev/usb/net/if_usie.c
M       dev/usb/net/usb_ethernet.c
M       dev/usb/serial/ulpt.c
M       dev/usb/serial/uslcom.c
M       dev/usb/wlan/if_rsu.c
M       dev/usb/wlan/if_rum.c
M       dev/usb/wlan/if_run.c
M       dev/usb/wlan/if_uath.c
M       dev/usb/wlan/if_upgt.c
M       dev/usb/wlan/if_ural.c
M       dev/usb/wlan/if_urtw.c
M       dev/usb/wlan/if_urtwn.c
M       dev/usb/wlan/if_zyd.c
M       dev/vge/if_vge.c
M       dev/virtio/network/if_vtnet.c
M       dev/virtio/random/virtio_random.c
M       dev/virtio/scsi/virtio_scsi.c
M       dev/vmware/vmxnet3/if_vmx.c
M       dev/vr/if_vr.c
M       dev/vte/if_vte.c
M       dev/vx/if_vx.c
M       dev/watchdog/watchdog.c
M       dev/wb/if_wb.c
M       dev/wpi/if_wpi.c
M       dev/xe/if_xe.c
M       dev/xen/netfront/netfront.c
M       dev/xl/if_xl.c
M       gdb/gdb_cons.c
M       geom/cache/g_cache.c
M       geom/raid/md_ddf.c
M       geom/raid/md_intel.c
M       geom/raid/md_jmicron.c
M       geom/raid/md_nvidia.c
M       geom/raid/md_promise.c
M       geom/raid/md_sii.c
M       kern/subr_vmem.c
M       kern/uipc_domain.c
M       net/ieee8023ad_lacp.c
M       net/if_spppsubr.c
M       net80211/ieee80211_ht.c
M       net80211/ieee80211_node.c
M       net80211/ieee80211_output.c
M       net80211/ieee80211_proto.c
M       netgraph/bluetooth/socket/ng_btsocket_l2cap.c
M       netgraph/bluetooth/socket/ng_btsocket_sco.c
M       netgraph/netflow/netflow.c
M       netgraph/netflow/ng_netflow.c
M       netinet/ip_mroute.c
M       netinet/sctp_os_bsd.h
M       netinet/tcp_hostcache.c
M       netinet6/in6_rmx.c
M       netinet6/ip6_mroute.c
M       netinet6/nd6.c
M       netinet6/nd6_nbr.c
M       netpfil/pf/if_pfsync.c


--------
Randall Stewart
rrs@netflix.com
803-317-4952








Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?26047F0C-A975-4DAC-9077-31B5EC4902DA>