#
3ee1a36e |
| 22-Nov-2011 |
Peter Grehan <grehan@FreeBSD.org> |
IFC @ r227804
Pull in the virtio drivers from head.
|
#
37d6f8a9 |
| 15-Nov-2011 |
David E. O'Brien <obrien@FreeBSD.org> |
Improve the chances of matching an outputted string with the line of code.
|
#
bd2228ab |
| 19-Jul-2011 |
Peter Grehan <grehan@FreeBSD.org> |
IFC @ r224187
|
#
935205e2 |
| 17-Jul-2011 |
Justin T. Gibbs <gibbs@FreeBSD.org> |
Integrate from Head into ZFSD feature branch as of revision r224141.
|
#
095489db |
| 15-Jul-2011 |
Attilio Rao <attilio@FreeBSD.org> |
Fix logical_cpus_mask retrieving by using, correctly, cpuset_t. This fix also a bug where pmccontrol uses a 32 static type rather than old cpumask_t.
Reported and reviewed by: avg
|
#
44735e89 |
| 15-Jul-2011 |
Andriy Gapon <avg@FreeBSD.org> |
pmcstat, pmccontrol: catch up with removal of machdep.hlt_cpus sysctl
Reported by: Pan Tsu <inyaoo@gmail.com> Reviewed by: attilio No objections: gnn
|
#
a5615c90 |
| 28-Jun-2011 |
Peter Grehan <grehan@FreeBSD.org> |
IFC @ r222830
|
#
033e1e35 |
| 07-Jun-2011 |
Attilio Rao <attilio@FreeBSD.org> |
etire the cpumask_t type and replace it with cpuset_t usage.
This is intended to fix the bug where cpu mask objects are capped to 32. MAXCPU, then, can now arbitrarely bumped to whatever value. An
etire the cpumask_t type and replace it with cpuset_t usage.
This is intended to fix the bug where cpu mask objects are capped to 32. MAXCPU, then, can now arbitrarely bumped to whatever value. Anyway, as long as several structures in the kernel are statically allocated and sized as MAXCPU, it is suggested to keep it as low as possible for the time being.
Technical notes on this commit itself: - More functions to handle with cpuset_t objects are introduced. The most notable are cpusetobj_ffs() (which calculates a ffs(3) for a cpuset_t object), cpusetobj_strprint() (which prepares a string representing a cpuset_t object) and cpusetobj_strscan() (which creates a valid cpuset_t starting from a string representation). - pc_cpumask and pc_other_cpus are target to be removed soon. With the moving from cpumask_t to cpuset_t they are now inefficient and not really useful. Anyway, for the time being, please note that access to pcpu datas is protected by sched_pin() in order to avoid migrating the CPU while reading more than one (possible) word - Please note that size of cpuset_t objects may differ between kernel and userland. While this is not directly related to the patch itself, it is good to understand that concept and possibly use the patch as a reference on how to deal with cpuset_t objects in userland, when accessing kernland members. - KTR_CPUMASK is changed and now is represented through a string, to be set as the example reported in NOTES.
Please additively note that no MAXCPU is bumped in this patch, but private testing has been done until to MAXCPU=128 on a real 8x8x2(htt) machine (amd64).
Please note that the FreeBSD version is not yet bumped because of the upcoming pcpu changes. However, note that this patch is not targeted for MFC.
People to thank for the time spent on this patch: - sbruno, pluknet and Nicholas Esborn (nick AT desert DOT net) tested several revision of the patches and really helped in improving stability of this work. - marius fixed several bugs in the sparc64 implementation and reviewed patches related to ktr. - jeff and jhb discussed the basic approach followed. - kib and marcel made targeted review on some specific part of the patch. - marius, art, nwhitehorn and andreast reviewed MD specific part of the patch. - marius, andreast, gonzo, nwhitehorn and jceel tested MD specific implementations of the patch. - Other people have made contributions on other patches that have been already committed and have been listed separately.
Companies that should be mentioned for having participated at several degrees: - Yahoo! for having offered the machines used for testing on big count of CPUs. - The FreeBSD Foundation for having sponsored my devsummit attendance, which has been instrumental. - Sandvine for having offered offices and infrastructure during development.
(I really hope I didn't forget anyone, if it happened I apologize in advance).
show more ...
|
#
1de471df |
| 31-May-2011 |
Attilio Rao <attilio@FreeBSD.org> |
Revert r222363, as bde@ pointed out the initial solution was far more correct.
|
#
d361ed4b |
| 27-May-2011 |
Attilio Rao <attilio@FreeBSD.org> |
Style fix: cast to size_t rather than u_long when comparing to sizeof() rets.
Requested by: kib
|
#
7cafb27f |
| 10-May-2011 |
Attilio Rao <attilio@FreeBSD.org> |
Avoid breaking strict-aliasing.
|
#
2953224e |
| 06-May-2011 |
Attilio Rao <attilio@FreeBSD.org> |
Fix breakage.
Reported by: sbruno
|
#
71a19bdc |
| 05-May-2011 |
Attilio Rao <attilio@FreeBSD.org> |
Commit the support for removing cpumask_t and replacing it directly with cpuset_t objects. That is going to offer the underlying support for a simple bump of MAXCPU and then support for number of cpu
Commit the support for removing cpumask_t and replacing it directly with cpuset_t objects. That is going to offer the underlying support for a simple bump of MAXCPU and then support for number of cpus > 32 (as it is today).
Right now, cpumask_t is an int, 32 bits on all our supported architecture. cpumask_t on the other side is implemented as an array of longs, and easilly extendible by definition.
The architectures touched by this commit are the following: - amd64 - i386 - pc98 - arm - ia64 - XEN
while the others are still missing. Userland is believed to be fully converted with the changes contained here.
Some technical notes: - This commit may be considered an ABI nop for all the architectures different from amd64 and ia64 (and sparc64 in the future) - per-cpu members, which are now converted to cpuset_t, needs to be accessed avoiding migration, because the size of cpuset_t should be considered unknown - size of cpuset_t objects is different from kernel and userland (this is primirally done in order to leave some more space in userland to cope with KBI extensions). If you need to access kernel cpuset_t from the userland please refer to example in this patch on how to do that correctly (kgdb may be a good source, for example). - Support for other architectures is going to be added soon - Only MAXCPU for amd64 is bumped now
The patch has been tested by sbruno and Nicholas Esborn on opteron 4 x 12 pack CPUs. More testing on big SMP is expected to came soon. pluknet tested the patch with his 8-ways on both amd64 and i386.
Tested by: pluknet, sbruno, gianni, Nicholas Esborn Reviewed by: jeff, jhb, sbruno
show more ...
|
Revision tags: release/7.4.0_cvs, release/8.2.0_cvs, release/7.4.0, release/8.2.0 |
|
#
88660748 |
| 11-Oct-2010 |
George V. Neville-Neil <gnn@FreeBSD.org> |
Add code to print the number and type of the CPU that is present in the system as well has how many PMCs there are per CPU. In this code CPU and core are equivalent.
MFC after: 1 day
|
Revision tags: release/8.1.0_cvs, release/8.1.0, release/7.3.0_cvs, release/7.3.0, release/8.0.0_cvs, release/8.0.0, release/7.2.0_cvs, release/7.2.0, release/7.1.0_cvs, release/7.1.0 |
|
#
e57c2b13 |
| 04-Dec-2008 |
Dag-Erling Smørgrav <des@FreeBSD.org> |
integrate from head@185615
|
Revision tags: release/6.4.0_cvs, release/6.4.0 |
|
#
5d09484b |
| 16-Nov-2008 |
Joseph Koshy <jkoshy@FreeBSD.org> |
Ignore absent CPUs when listing the current state of PMC hardware.
|
#
35cf650f |
| 09-Nov-2008 |
Joseph Koshy <jkoshy@FreeBSD.org> |
Change the meaning of a "*" argument to option -c to mean 'all unhalted CPUs', instead of 'all CPUs'. This change brings pmccontrol(8) in line with pmcstat(8).
|
Revision tags: release/7.0.0_cvs, release/7.0.0, release/6.3.0_cvs, release/6.3.0, release/6.2.0_cvs, release/6.2.0, release/5.5.0_cvs, release/5.5.0, release/6.1.0_cvs, release/6.1.0 |
|
#
5943a2a3 |
| 27-Feb-2006 |
Joseph Koshy <jkoshy@FreeBSD.org> |
Fix pmccontrol(8) on Intel Xeon's running in 64 bit mode.
PR: kern/93773
|
Revision tags: release/6.0.0_cvs, release/6.0.0 |
|
#
f35f2fc8 |
| 29-Sep-2005 |
Joseph Koshy <jkoshy@FreeBSD.org> |
The 'intr_bufferfull' driver statistic actually counts the number of times sampling was stopped due to a space shortage; change its description in the output of `pmcstat -s` to match reality.
MFC af
The 'intr_bufferfull' driver statistic actually counts the number of times sampling was stopped due to a space shortage; change its description in the output of `pmcstat -s` to match reality.
MFC after: 3 days
show more ...
|
#
9798d180 |
| 24-Jun-2005 |
Joseph Koshy <jkoshy@FreeBSD.org> |
Sync the usage message with the code.
Approved by: re (hwpmc blanket) Pointed out by: ru
|
#
f263522a |
| 09-Jun-2005 |
Joseph Koshy <jkoshy@FreeBSD.org> |
MFP4:
- Implement sampling modes and logging support in hwpmc(4).
- Separate MI and MD parts of hwpmc(4) and allow sharing of PMC implementations across different architectures. Add support for
MFP4:
- Implement sampling modes and logging support in hwpmc(4).
- Separate MI and MD parts of hwpmc(4) and allow sharing of PMC implementations across different architectures. Add support for P4 (EMT64) style PMCs to the amd64 code.
- New pmcstat(8) options: -E (exit time counts) -W (counts every context switch), -R (print log file).
- pmc(3) API changes, improve our ability to keep ABI compatibility in the future. Add more 'alias' names for commonly used events.
- bug fixes & documentation.
show more ...
|
Revision tags: release/5.4.0_cvs, release/5.4.0 |
|
#
c5153e19 |
| 01-May-2005 |
Joseph Koshy <jkoshy@FreeBSD.org> |
Add convenience APIs pmc_width() and pmc_capabilities() to -lpmc. Have pmcstat(8) and pmccontrol(8) use these APIs.
Return PMC class-related constants (PMC widths and capabilities) with the OP GETCP
Add convenience APIs pmc_width() and pmc_capabilities() to -lpmc. Have pmcstat(8) and pmccontrol(8) use these APIs.
Return PMC class-related constants (PMC widths and capabilities) with the OP GETCPUINFO call leaving OP PMCINFO to return only the dynamic information associated with a PMC (i.e., whether enabled, owner pid, reload count etc.).
Allow pmc_read() (i.e., OPS PMCRW) on active self-attached PMCs to get upto-date values from hardware since we can guarantee that the hardware is running the correct PMC at the time of the call.
Bug fixes: - (x86 class processors) Fix a bug that prevented an RDPMC instruction from being recognized as permitted till after the attached process had context switched out and back in again after a pmc_start() call.
Tighten the rules for using RDPMC class instructions: a GETMSR OP is now allowed only after an OP ATTACH has been done by the PMC's owner to itself. OP GETMSR is not allowed for PMCs that track descendants, for PMCs attached to processes other than their owner processes.
- (P4/HTT processors only) Fix a bug that caused the MI and MD layers to get out of sync. Add a new MD operation 'get_config()' as part of this fix.
- Allow multiple system-mode PMCs at the same row-index but on different CPUs to be allocated.
- Reject allocation of an administratively disabled PMC.
Misc. code cleanups and refactoring. Improve a few comments.
show more ...
|
#
ebccf1e3 |
| 19-Apr-2005 |
Joseph Koshy <jkoshy@FreeBSD.org> |
Bring a working snapshot of hwpmc(4), its associated libraries, userland utilities and documentation into -CURRENT.
Bump FreeBSD_version.
Reviewed by: alc, jhb (kernel changes)
|
Revision tags: release/6.4.0_cvs, release/6.4.0 |
|
#
5d09484b |
| 16-Nov-2008 |
Joseph Koshy <jkoshy@FreeBSD.org> |
Ignore absent CPUs when listing the current state of PMC hardware.
|
#
35cf650f |
| 09-Nov-2008 |
Joseph Koshy <jkoshy@FreeBSD.org> |
Change the meaning of a "*" argument to option -c to mean 'all unhalted CPUs', instead of 'all CPUs'. This change brings pmccontrol(8) in line with pmcstat(8).
|