Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 18 Jan 2003 14:22:15 -0700
From:      Scott Long <scott_long@btc.adaptec.com>
To:        Joe Marcus Clarke <marcus@marcuscom.com>
Cc:        Hiten Pandya <hiten@unixdaemons.com>, Craig Rodrigues <rodrigc@attbi.com>, Will Andrews <will@csociety.org>, freebsd-current@freebsd.org, dillon@freebsd.org
Subject:   Re: VM_METER no longer defined?
Message-ID:  <3E29C587.9030409@btc.adaptec.com>
In-Reply-To: <1042923720.7820.25.camel@shumai.marcuscom.com>
References:  <1042923720.7820.25.camel@shumai.marcuscom.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Joe Marcus Clarke wrote:

> On Sat, 2003-01-18 at 15:20, Scott Long wrote:
>
> >Hiten Pandya wrote:
> >
> >
> >>On Fri, Jan 17, 2003 at 04:39:42PM -0700, Scott Long wrote the words
>
>
> >>in effect of:
> >>
> >>
> >>>Craig Rodrigues wrote:
> >>>
> >>>
> >>>
> >>>>On Fri, Jan 17, 2003 at 10:26:10AM -0800, Will Andrews wrote:
> >>>>
> >>>>
> >>>>
> >>>>>Of course, these things can be fixed.  But I consider this change
> >>>>>gratuitous and it breaks standard compatability rules: deprecate
> >>>>>for one major version and remove in the second.  I haven't seen
> >>>>>any reason why this couldn't be added to vm/vm_param.h:
> >>>>>
> >>>>>#define VM_METER VM_TOTAL
> >>>>>
> >>>>>for compatability purposes.  This change is way too sudden in an
> >>>>>external API (if it's supposed to be internal, then protect it
> >>>>>with an #ifdef _KERNEL already!).
> >>>>
> >>>>
> >>>>How about this then:
> >>>>
> >>>>
> >>>>Index: vm_param.h
> >>
> >>===================================================================
> >>
> >>>>RCS file: /home/ncvs/src/sys/vm/vm_param.h,v
> >>>>retrieving revision 1.16
> >>>>diff -u -r1.16 vm_param.h
> >>>>--- vm_param.h	2003/01/11 07:29:46	1.16
> >>>>+++ vm_param.h	2003/01/17 23:25:52
> >>>>@@ -89,6 +89,8 @@
> >>>>#define VM_SWAPPING_ENABLED	11	/* swapping enabled */
> >>>>#define	VM_MAXID		12	/* number of valid vm
>
> ids */
>
> >>>>+#define VM_METER	VM_TOTAL /* backwards compatibility, struct
>
> vmmeter
>
> >>>>*/
> >>>>+
> >>>>#define CTL_VM_NAMES { \
> >>>>	{ 0, 0 }, \
> >>>>	{ "vmtotal", CTLTYPE_STRUCT }, \
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>The only place where VM_METER is used in this directory was in
> >>
> >>vm_meter.c:
> >>
> >>>>  240 SYSCTL_PROC(_vm, VM_METER, vmmeter,
>
> CTLTYPE_OPAQUE|CTLFLAG_RD,
>
> >>>>  241     0, sizeof(struct vmtotal), vmtotal, "S,vmtotal",
> >>>>  242     "System virtual memory statistics");
> >>>>
> >>>>This changed to:
> >>>>
> >>>>  240 SYSCTL_PROC(_vm, VM_TOTAL, vmtotal,
>
> CTLTYPE_OPAQUE|CTLFLAG_RD,
>
> >>>>  241     0, sizeof(struct vmtotal), vmtotal, "S,vmtotal",
> >>>>  242     "System virtual memory statistics");
> >>>>
> >>>>
> >>>>
> >>>
> >>>This is ugly and only further perpetuates what appears to be a
> >>>gratuitous API
> >>>change.  Let's wait to hear from the submitter (Hiten) and
>
> committer
>
> >>>(Matt) to
> >>>see why this was needed in the first place.
> >>>
> >>>Hiten?  Matt?
> >>
> >>
> >>The change was made, because VM_METER was a bogus name for what it
>
> did.
>
> >>It returned struct vmtotal, but we named it VM_METER.  Infact, I
>
> tried
>
> >>to push this change some long time ago, but there were complications
> >>(people busy etc...).
> >>
> >>I think applicatins to should be changed to use VM_TOTAL, instead of
> >>VM_METER, because that's the correct name.  This is the same issue
>
> with
>
> >>the KMEM_METER define, which will be resolved once I get around to
>
> it.
>
> >>I sent this change to Matt first, to check if it was right, since he
>
> is
>
> >>the VM guru and whatnot.  Also, the change was made quite a while
>
> ago.
>
> >>Before we entered the freeze, IIRC.  IMHO, backing it out will just
>
> make
>
> >>more and more apps use it, and it will be totally sad -- but hey, I
>
> am
>
> >>not Release Engineer, so final decision is up to you.
> >>
> >>Cheers.
> >>
> >>P.S. Apologies for taking long to reply, I was out party-ing. :^)
> >>
> >>--
> >>Hiten Pandya (hiten@unixdaemons.com, hiten@uk.FreeBSD.org)
> >>http://www.unixdaemons.com/~hiten/
> >
> >
> >Ok, I agree that the naming could cause confusion since there is a
> >vmmeter struct and a vmtotal struct.  However, the Release Engineering
> >policy that was set out at the start of RELENG_5_0 is that public API
> >changes need review.  I'm not saying that those reviews won't be
> >approved, but we want to keep the pain involved in 5.0->5.1 as low
> >as possible.  This is causing pain with several high-profile ports.
> >
> >In my opinion, the inconsistency in VM_METER was annoying, but
> >not enough to justify breaking an interface that has been existence
> >since _1994_.  Dude, that is _9_ years.  If you'd like the name to
> >change, lets hold of for RELENG_5 to happen.  Please back out the
> >name change.
>
>
> Scott, the API change does not exist in RELENG_5_0.  This change only
> went into HEAD.
>
> Joe
>
>
> >Scott

I'm fully aware of that.  As I state in the previous email, I'd like to see
5.0->5.1 happen as smoothly as possible.  For background, go re-read
my email to developers@ when the RELENG_5_0 branch happened.

Also, it's common practice to deprecate public interfaces for a period 
of time
before removing them.  Hiten's change doesn't do that either.

Scott


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3E29C587.9030409>