Date: Tue, 10 May 2016 19:33:51 +0200 From: Edward Tomasz Napierala <trasz@freebsd.org> To: Alan Somers <asomers@freebsd.org> Cc: "src-committers@freebsd.org" <src-committers@freebsd.org>, "svn-src-all@freebsd.org" <svn-src-all@freebsd.org>, "svn-src-head@freebsd.org" <svn-src-head@freebsd.org>, "Kenneth D. Merry" <ken@freebsd.org> Subject: Re: svn commit: r299371 - in head: sbin/camcontrol sys/cam sys/cam/scsi Message-ID: <20160510173351.GA4176@brick> In-Reply-To: <CAOtMX2jJTKMM=kjJy0uUnkK93cDs_N5c5ohYnLq3CAd-fOYW2A@mail.gmail.com> References: <201605101546.u4AFkX0w073701@repo.freebsd.org> <CAOtMX2jJTKMM=kjJy0uUnkK93cDs_N5c5ohYnLq3CAd-fOYW2A@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On 0510T1020, Alan Somers wrote: > On Tue, May 10, 2016 at 9:46 AM, Edward Tomasz Napierala <trasz@freebsd.org> > wrote: > > > Author: trasz > > Date: Tue May 10 15:46:33 2016 > > New Revision: 299371 > > URL: https://svnweb.freebsd.org/changeset/base/299371 > > > > Log: > > Add "camcontrol reprobe" subcommand, and implement it for da(4). > > This makes it possible to manually force updating capacity data > > after the disk got resized. Without it it might be neccessary to > > reboot before FreeBSD notices updated disk size under eg VMWare. > > > > Discussed with: imp@ > > MFC after: 1 month > > Sponsored by: The FreeBSD Foundation > > Differential Revision: https://reviews.freebsd.org/D6108 > > > > Modified: > > head/sbin/camcontrol/camcontrol.8 > > head/sbin/camcontrol/camcontrol.c > > head/sys/cam/cam_ccb.h > > head/sys/cam/cam_xpt.c > > head/sys/cam/scsi/scsi_da.c > > > > > > I too have been annoyed that "camcontrol rescan" won't update capacity > data. But could we solve the problem by simply adding logic to "camcontrol > rescan" instead of adding an entirely new command? Would a user ever want > to rescan a device without reprobing it too? Two reasons. First, I want to be able to pass the device name (like 'da0') and not the CAM path (like 1:0:0) for usability reasons - it seems easy to figure out the latter from the former, using "camcontrol devlist", but it suddenly becomes complicated when you try to explain it in a man page. Second - I don't understand the "camcontrol rescan" logic well enough, and "camcontrol rescan all" sometimes fails for me anyway, in a way I'm not sure how to debug. Also, to be honest I'm not sure those two are actually that related. Rescanning is about discovering new devices on the bus. "Reprobe" is about updating... well, mostly updating the capacity. The former requires enumerating the bus using a mechanism built into XPT; the latter is just notifying the periph driver (in this case da(4)) that it needs to query the capacity and call disk_resize(4).
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20160510173351.GA4176>