Date: Tue, 3 Feb 2004 12:31:29 -0800 (PST) From: Nate Lawson <nate@root.org> To: Ruslan Ermilov <ru@freebsd.org> Cc: current@freebsd.org Subject: Re: getenv_string broken? Message-ID: <20040203122911.E32526@root.org> In-Reply-To: <20040129135141.GD19899@FreeBSD.org.ua> References: <20040126213228.D31623@root.org> <200401271328.29574.jhb@FreeBSD.org> <20040127222750.P77555@root.org> <200401281245.12012.jhb@FreeBSD.org> <20040129135141.GD19899@FreeBSD.org.ua>
next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, 29 Jan 2004, Ruslan Ermilov wrote: > On Wed, Jan 28, 2004 at 10:47:00AM -0800, Nate Lawson wrote: > > On Wed, 28 Jan 2004, John Baldwin wrote: > > > On Wednesday 28 January 2004 01:28 am, Nate Lawson wrote: > > > > On Tue, 27 Jan 2004, John Baldwin wrote: > > > > > On Tuesday 27 January 2004 12:42 am, Nate Lawson wrote: > > > > > > I have a getenv_string() that is never being evaluated. I declared it > > > > > > as follows: > > > > > > > > > > > > static char acpi_os_name[128]; > > > > > > TUNABLE_STR("hw.acpi.os_name", acpi_os_name, sizeof(acpi_os_name)); > > > > > > > > > > > > The contents of acpi_os_name are never filled in from the variable I > > > > > > declared in /boot/loader.conf. Just to be sure, I made a loop that > > > > > > prints out the contents of kenvp. It does not have hw.acpi.os_name. > > > > > > > > > > > > Here is a snippet of the kenvp array, right where my tunable should be > > > > > > (os2 is from a test below): > > > > > > > > > > > > name: hint.vt.0.disabled=1 > > > > > > name: hw.acpi.os2=8 > > > > > > name: hw.acpi.reset_video=0 > > > > > > name: hw.acpi.verbose=1 > > > > > > name: hw.cbb.start_memory=0xc0203000 > > > > > > How did you dump this? If os_name isn't in the list, then that is going to be > > > a problem of course. :) That would indicate that a bug in the loader though > > > and not in getenv_string(). > > > > I added a loop that prints out the entire kenv each time getenv_string is > > called. This is possibly a loader bug although I'm very curious how > > surrounding variables make it into the list but not hw.acpi.os_name. It's > > possible they're all ints while mine is a string. The only other string > > is module_path, so perhaps I should try overloading that in loader.conf > > and see if it also fails. > > What's wrong with just using kenv(1)? Yeah, that shows the bug too. Something in the loader is not picking up my TUNABLE_STR declaration. It may be related to acpi.ko being a module since the only other string is module_path, which is defined in the kernel. But tunable ints in acpi work. Anyone care to help debug this? -Nate
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20040203122911.E32526>