Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 06 Jun 2004 20:24:36 +0900
From:      NAKAJI Hiroyuki <nakaji@tutrp.tut.ac.jp>
To:        freebsd-current@freebsd.org
Subject:   [pc98] recent current kernel gets fatal trap
Message-ID:  <867julgc97.fsf@xa12.heimat.gr.jp>

next in thread | raw e-mail | index | archive | help
Hi,

I'm still using old current kernel on my PC-9821Xa12/C8,

FreeBSD xa12.heimat.gr.jp 5.2-CURRENT FreeBSD 5.2-CURRENT #2: Sun Jan 4 12:30:30 JST 2004
root@xa12.heimat.gr.jp:/usr/obj/usr/src/sys/NAKAJI  i386

because recent current kernels always get fatal trap. I noticed this
problem in March, and on the end of May, the problem still exists.

For example, the kernel compiled on Sat May 29 09:40:01 JST 2004 gets
Fatal trap 12 just after detection of ad1.

I'm not sure this is because of ata driver problem or not, but some
FreeBSD/pc98 users say they don't have such problem because their pc98
is all SCSI.

Is this pc98 specific ata problem?

--->8------>8------>8------>8------>8------>8------>8------>8---
Copyright (c) 1992-2004 The FreeBSD Project.
Copyright (c) 1994-2004 FreeBSD(98) porting team.
Copyright (c) 1992  A.Kojima F.Ukai M.Ishii (KMC).
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
	The Regents of the University of California. All rights reserved.
FreeBSD 5.2-CURRENT #55: Sat May 29 09:40:01 JST 2004
    root@xa12.heimat.gr.jp:/usr/obj/usr/src/sys/NAKAJI
Preloaded elf kernel "/boot/kernel/kernel" at 0xc08c8000.
Preloaded userconfig_script "/boot/kernel.conf" at 0xc08c80d8.
Calibrating clock(s) ... i8254 clock: 2457608 Hz
CLK_USE_I8254_CALIBRATION not specified - using default frequency
Timecounter "i8254" frequency 2457600 Hz quality 0
Calibrating TSC clock ... TSC clock: 331784183 Hz
CPU: AMD-K6(tm) 3D processor (331.78-MHz 586-class CPU)
  Origin = "AuthenticAMD"  Id = 0x58c  Stepping = 12
  Features=0x8021bf<FPU,VME,DE,PSE,TSC,MSR,MCE,CX8,PGE,MMX>
  AMD Features=0x80000800<SYSCALL,3DNow!>
Data TLB: 128 entries, 2-way associative
Instruction TLB: 64 entries, 1-way associative
L1 data cache: 32 kbytes, 32 bytes/line, 2 lines/tag, 2-way associative
L1 instruction cache: 32 kbytes, 32 bytes/line, 2 lines/tag, 2-way associative
Write Allocate Disable
real memory  = 134217728 (128 MB)
Physical memory chunk(s):
0x0000000000001000 - 0x000000000009ffff, 651264 bytes (159 pages)
0x0000000000100000 - 0x00000000003fffff, 3145728 bytes (768 pages)
0x0000000000c26000 - 0x0000000007d8dfff, 118915072 bytes (29032 pages)
avail memory = 121790464 (116 MB)
bios32: Found BIOS32 Service Directory header at 0xc00f4c40
bios32: Entry = 0xf5612 (c00f5612)  Rev = 0  Len = 1
pcibios: PCI BIOS entry at 0xd90f0+0x1c52b
pnpbios: Found PnP BIOS data at 0xc00f51b0
pnpbios: Entry = d8000:3a  Rev = 1.0
pnpbios: OEM ID 38394350
Other BIOS signatures found:
wlan: <802.11 Link Layer>
null: <null device, zero device>
mem: <memory & I/O>
K6-family MTRR support enabled (2 registers)
random: <entropy source, Software, Yarrow>
npx0: [FAST]
npx0: <math processor> on motherboard
npx0: INT 16 interface
pci_open(1):	mode 1 addr port (0x0cf8) is 0x80000064
pci_open(1a):	mode1res=0x80000000 (0x80000000)
pci_cfgcheck:	device 0 [class=060000] [hdr=00] is there (id=00071004)
pcibios: BIOS_PRESENT call failed
pcib0: <Host to PCI bridge> at pcibus 0 on motherboard
pci0: <PCI bus> on pcib0
pci0: physical bus=0
found->	vendor=0x1004, dev=0x0007, revid=0x01
	bus=0, slot=0, func=0
	class=06-00-00, hdrtype=0x00, mfdev=0
	cmdreg=0x0106, statreg=0x2280, cachelnsz=0 (dwords)
	lattimer=0x10 (480 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
found->	vendor=0x1033, dev=0x0001, revid=0x02
	bus=0, slot=6, func=0
	class=06-80-00, hdrtype=0x00, mfdev=0
	cmdreg=0x010f, statreg=0x0200, cachelnsz=0 (dwords)
	lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
found->	vendor=0x1033, dev=0x0009, revid=0x01
	bus=0, slot=7, func=0
	class=03-80-00, hdrtype=0x00, mfdev=0
	cmdreg=0x0003, statreg=0x0280, cachelnsz=0 (dwords)
	lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
	map[10]: type 1, range 32, base 20000000, size 22, enabled
	map[14]: type 1, range 32, base 20400000, size 16, enabled
found->	vendor=0x1023, dev=0x9660, revid=0xd3
	bus=0, slot=8, func=0
	class=03-00-00, hdrtype=0x00, mfdev=0
	cmdreg=0x0002, statreg=0x0280, cachelnsz=0 (dwords)
	lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
	intpin=a, irq=255
	map[10]: type 1, range 32, base 20410000, size 14, enabled
	map[14]: type 3, range 32, base 20800000, size 23, enabled
found->	vendor=0x102b, dev=0x0519, revid=0x01
	bus=0, slot=13, func=0
	class=03-80-00, hdrtype=0x00, mfdev=0
	cmdreg=0x0082, statreg=0x0280, cachelnsz=0 (dwords)
	lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
	intpin=a, irq=10
	map[10]: type 4, range 32, base 00006000, size  8, enabled
	map[14]: type 1, range 32, base 20414000, size  8, enabled
	map[18]: type 1, range 32, base 20415000, size 12, enabled
found->	vendor=0x1000, dev=0x000f, revid=0x03
	bus=0, slot=14, func=0
	class=01-00-00, hdrtype=0x00, mfdev=0
	cmdreg=0x0157, statreg=0x0200, cachelnsz=0 (dwords)
	lattimer=0x60 (2880 ns), mingnt=0x11 (4250 ns), maxlat=0x40 (16000 ns)
	intpin=a, irq=10
PCI-ISA bridge with incorrect subclass 0x80
PCI-ISA bridge with incorrect subclass 0x80
isab0: <PCI-ISA bridge> at device 6.0 on pci0
isa0: <ISA bus> on isab0
pci0: <display> at device 7.0 (no driver attached)
pci0: <display, VGA> at device 8.0 (no driver attached)
pci0: <display> at device 13.0 (no driver attached)
sym0: <875> port 0x6000-0x60ff mem 0x20415000-0x20415fff,0x20414000-0x204140ff irq 10 at device 14.0 on pci0
sym0: Reserved 0x100 bytes for rid 0x14 type 3 at 0x20414000
sym0: Reserved 0x1000 bytes for rid 0x18 type 3 at 0x20415000
sym0: Symbios NVRAM, ID 7, Fast-20, SE, NO parity
sym0: open drain IRQ line driver, using on-chip SRAM
sym0: using LOAD/STORE-based firmware.
sym0: [GIANT-LOCKED]
cpu0 on motherboard
Trying Read_Port at 203
Trying Read_Port at 243
Trying Read_Port at 283
Trying Read_Port at 2c3
Trying Read_Port at 303
Trying Read_Port at 343
Trying Read_Port at 383
Trying Read_Port at 3c3
pnpbios: error 0/82 getting device count/size limit
pnpbios: 1 devices, largest 0 bytes
pnpbios: error 0x82 fetching node 0
gdc: gdc0 already exists; skipping it
sc: sc0 already exists; skipping it
isa_probe_children: disabling PnP devices
isa_probe_children: probing non-PnP devices
atacbus0 at port 0x432,0x74c,0x640-0x64f irq 9 on isa0
atacbus0: [MPSAFE]
ata0: reset tp1 mask=03 ostat0=50 ostat1=50
ata0-master: stat=0x50 err=0x01 lsb=0x00 msb=0x00
ata0-slave:  stat=0x50 err=0x01 lsb=0x00 msb=0x00
ata0: reset tp2 mask=03 stat0=50 stat1=50 devices=0x3<ATA_SLAVE,ATA_MASTER>
ata0 at bank 0 on atacbus0
ata0: [MPSAFE]
ata1: reset tp1 mask=03 ostat0=10 ostat1=00
ata1-master: stat=0x10 err=0x01 lsb=0x14 msb=0xeb
ata1-slave:  stat=0x00 err=0x01 lsb=0xff msb=0xff
ata1: reset tp2 mask=03 stat0=10 stat1=00 devices=0x4<ATAPI_MASTER>
ata1 at bank 1 on atacbus0
ata1: [MPSAFE]
ed9 at port 0x7d0-0x7df,0x3d0-0x3df irq 3 flags 0xb00000 on isa0
ed9: [GIANT-LOCKED]
ed9: bpf attached
ed9: Ethernet address: 00:80:4c:20:a1:6b
type CNET98E/L (16 bit) 
fdc0 at port 0x4be,0xbe,0x94,0x92,0x90 irq 11 drq 2 on isa0
fd0: <1.44M FDD> on fdc0 drive 0
gdc0: <Generic GDC> at port 0xaf,0xad,0xab,0xa9,0xa7,0xa5,0xa3,0xa1,0x7e,0x7c,0x7a,0x78,0x76,0x74,0x72,0x70,0x9ae,0x9ac,0x9aa,0x9a8,0x9a6,0x9a4,0x9a2,0x9a0,0x4ae,0x4ac,0x4aa,0x4a8,0x4a6,0x4a4,0x4a2,0x4a0,0xae,0xac,0xaa,0xa8,0xa6,0xa4,0xa2,0xa0,0x6e,0x6c,0x6a,0x68,0x66,0x64,0x62,0x60 iomem 0xe0000-0xe7fff,0xa8000-0xbffff,0xa0000-0xa4fff on isa0
fb0: gdc0, gdc, type:PC-98x1 (6), flags:0x700c3
fb0: port:0x60-0x6f, crtc:0x60, mem:0xa0000 0x48000
fb0: init mode:98, bios mode:98, current mode:98
fb0: window:0xc00a0000 size:32k gran:32k, buf:0 size:0k
mse0: <Bus/InPort Mouse> at port 0x7fdf,0x7fdd,0x7fdb,0x7fd9 irq 13 on isa0
olpt0 failed to probe at port 0x40 on isa0
pcic0 failed to probe at port 0x3e0 on isa0
pckbd0: <PC-98 Keyboard> at port 0x43,0x41 irq 1 on isa0
kbd0 at pckbd0
kbd0: pckbd0, generic (0), config:0x0, flags:0x1d0000
Found OPTi device OPTi930
mss_detect() - Detected OPTi930
pcm0: <OPTi930> at port 0xf8f-0xf97,0xe0e,0xf40-0xf47 irq 12 drq 1 flags 0x1b000 on isa0
drq/irq conf 22
pcm0: [GIANT-LOCKED]
pcm0: sndbuf_setmap 188000, 1000; 0xc8ca5000 -> 188000
pcm0: sndbuf_setmap 189000, 1000; 0xc8ca6000 -> 189000
ppc0: parallel port found at 0x140
ppc0: using extended I/O port range
ppc0: ECP SPP ECP+EPP SPP
ppc0: <Parallel port> at port 0x140-0x147 irq 14 on isa0
ppc0: SMC-like chipset (ECP/EPP/PS2/NIBBLE) in COMPATIBLE mode
ppc0: FIFO with 16/16/16 bytes threshold
ppbus0: <Parallel port bus> on ppc0
plip0: <PLIP network interface> on ppbus0
plip0: bpf attached
lpt0: <Printer> on ppbus0
lpt0: Interrupt-driven port
ppi0: <Parallel I/O> on ppbus0
sc0: <System console> on isa0
sc0: PC-98x1 <16 virtual consoles, flags=0x0>
sc0: fb0, kbd0, terminal emulator: sck (syscons kanji terminal)
sio0 at port 0x30 irq 4 on isa0
sio0: type (internal fifo v-fast)
sio1: irq maps: 0xc081 0xc0a1 0xc081 0xc081
sio1 at port 0x238-0x23f irq 5 flags 0x12000010 on isa0
sio1: type 16550A, console
isa_probe_children: probing PnP devices
BIOS Geometries:
 0:2fe30811 0..12259=12260 cylinders, 0..8=9 heads, 1..17=17 sectors
 1:f2a70811 0..62119=62120 cylinders, 0..8=9 heads, 1..17=17 sectors
 2:80c30820 0..32963=32964 cylinders, 0..8=9 heads, 1..32=32 sectors
 3:c1aa0820 0..49578=49579 cylinders, 0..8=9 heads, 1..32=32 sectors
 4:e5040880 0..58628=58629 cylinders, 0..8=9 heads, 1..128=128 sectors
 5:004f020f 0..79=80 cylinders, 0..2=3 heads, 1..15=15 sectors
 6:004f020f 0..79=80 cylinders, 0..2=3 heads, 1..15=15 sectors
 7:004f020f 0..79=80 cylinders, 0..2=3 heads, 1..15=15 sectors
 0 accounted for
Device configuration finished.
procfs registered
Timecounter "TSC" frequency 331784183 Hz quality 800
Timecounters tick every 10.000 msec
lo0: bpf attached
Stack backtrace:
backtrace(0,c07ddf8c,c0c21cac,c0573dcc,c07de0a0) at backtrace+0x12
sched_switch(c07de0a0) at sched_switch+0x6b
mi_switch(1,c07de0a0,1,c0c21ccc,c058d05b) at mi_switch+0x1a0
sleepq_switch(c1fd706c) at sleepq_switch+0x135
sleepq_wait(c1fd706c,0,c1fd706c,c1fd7048,c071eaf8) at sleepq_wait+0xb
cv_wait(c1fd706c,c1fd7048,c1fd7048,1,c0c21d2c) at cv_wait+0x102
_sema_wait(c1fd7048,0,0,c1fd7000,c0c21d4c) at _sema_wait+0x4a
ata_queue_request(c1fd7000,c,ec57bb0c,c129a600,0) at ata_queue_request+0x1e1
ata_getparam(c129a6dc,ec) at ata_getparam+0x9a
ata_identify_devices(c129a600) at ata_identify_devices+0x21
ata_boot_attach(0) at ata_boot_attach+0x27
run_interrupt_driven_config_hooks(0,c1ec00,c1e000,0,c0434d00) at run_interrupt_driven_config_hooks+0x18
mi_startup() at mi_startup+0x96
begin() at begin+0x2c
ata0-slave: pio=0x0c wdma=0x22 udma=0x42 cable=40pin
ata0-master: pio=0x0b wdma=0x21 udma=0xffffffff cable=40pin
ad0: <WDC AC2850F/27.25C38> ATA-0 disk at ata0-master
ad0: 814MB (1667232 sectors), 12259 C, 8 H, 17 S, 512 B
ad0: 1 secs/int, 1 depth queue, PIO3
GEOM: new disk ad0
PC98 Slice 1 on ad0:
0000   94 c4 00 00 00 00 01 00 00 00 01 00 00 00 e2 2f  |.............../|
0010   46 72 65 65 42 53 44 00 00 00 00 00 00 00 00 00  |FreeBSD.........|
[0] mid:148(0x94) sid:196(0xc4) s:1/0/0 e:12258/0/0 sname:FreeBSD
PC98 Slice 2 on ad0:
0000   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
0010   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
[1] mid:0(0x0) sid:0(0x0) s:0/0/0 e:0/0/0 sname:
PC98 Slice 3 on ad0:
0000   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
0010   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
[2] mid:0(0x0) sid:0(0x0) s:0/0/0 e:0/0/0 sname:
PC98 Slice 4 on ad0:
0000   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
0010   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
[3] mid:0(0x0) sid:0(0x0) s:0/0/0 e:0/0/0 sname:
PC98 Slice 5 on ad0:
0000   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
0010   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
[4] mid:0(0x0) sid:0(0x0) s:0/0/0 e:0/0/0 sname:
PC98 Slice 6 on ad0:
0000   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
0010   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
[5] mid:0(0x0) sid:0(0x0) s:0/0/0 e:0/0/0 sname:
PC98 Slice 7 on ad0:
0000   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
0010   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
[6] mid:0(0x0) sid:0(0x0) s:0/0/0 e:0/0/0 sname:
PC98 Slice 8 on ad0:
0000   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
0010   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
[7] mid:0(0x0) sid:0(0x0) s:0/0/0 e:0/0/0 sname:
PC98 Slice 9 on ad0:
0000   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
0010   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
[8] mid:0(0x0) sid:0(0x0) s:0/0/0 e:0/0/0 sname:
PC98 Slice 10 on ad0:
0000   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
0010   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
[9] mid:0(0x0) sid:0(0x0) s:0/0/0 e:0/0/0 sname:
PC98 Slice 11 on ad0:
0000   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
0010   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
[10] mid:0(0x0) sid:0(0x0) s:0/0/0 e:0/0/0 sname:
PC98 Slice 12 on ad0:
0000   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
0010   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
[11] mid:0(0x0) sid:0(0x0) s:0/0/0 e:0/0/0 sname:
PC98 Slice 13 on ad0:
0000   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
0010   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
[12] mid:0(0x0) sid:0(0x0) s:0/0/0 e:0/0/0 sname:
PC98 Slice 14 on ad0:
0000   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
0010   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
[13] mid:0(0x0) sid:0(0x0) s:0/0/0 e:0/0/0 sname:
PC98 Slice 15 on ad0:
0000   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
0010   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
[14] mid:0(0x0) sid:0(0x0) s:0/0/0 e:0/0/0 sname:
PC98 Slice 16 on ad0:
0000   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
0010   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
[15] mid:0(0x0) sid:0(0x0) s:0/0/0 e:0/0/0 sname:
GEOM: Configure ad0s1, start 69632 length 853549056 end 853618687
ad1: <FUJITSU MPC3043AT/6021> ATA-3 disk at ata0-slave
ad1: 4125MB (8448300 sectors), 62119 C, 8 H, 17 S, 512 B
ad1: 16 secs/int, 1 depth queue, PIO4
ata1-master: pio=0x0c wdma=0x22 udma=0x42 cable=40pin
kernel trap 12 with interrupts disabled


Fatal trap 12: page fault while in kernel mode
fault virtual address	= 0x24
fault code		= supervisor read, page not present
instruction pointer	= 0x8:0xc058ea58
stack pointer	        = 0x10:0xc864cc70
frame pointer	        = 0x10:0xc864cc80
code segment		= base 0x0, limit 0xfffff, type 0x1b
			= DPL 0, pres 1, def32 1, gran 1
processor eflags	= resume, IOPL = 0
current process		= 28 (swi8: tty:sio clock)
kernel: type 12 trap, code=0
Stopped at      propagate_priority+0x78:        movl    0x24(%edi),%eax
db> t
propagate_priority(c12a1000,c07e5fb8,c07e1ba0,c12a1000,c07de0a2) at propagate_priority+0x78
turnstile_wait(0,c07e1ba0,c07de0a0) at turnstile_wait+0x2a4
_mtx_lock_sleep(c07e1ba0,0,0,0) at _mtx_lock_sleep+0xbd
softclock(0) at softclock+0x210
ithread_loop(c129e500,c864cd48) at ithread_loop+0x1c1
fork_exit(c055b440,c129e500,c864cd48) at fork_exit+0x71
fork_trampoline() at fork_trampoline+0x8
--- trap 0x1, eip = 0, esp = 0xc864cd7c, ebp = 0 ---
db> c


Fatal trap 12: page fault while in kernel mode
fault virtual address	= 0x24
fault code		= supervisor read, page not present
instruction pointer	= 0x8:0xc058ea58
stack pointer	        = 0x10:0xc864cc70
frame pointer	        = 0x10:0xc864cc80
code segment		= base 0x0, limit 0xfffff, type 0x1b
			= DPL 0, pres 1, def32 1, gran 1
processor eflags	= resume, IOPL = 0
current process		= 28 (swi8: tty:sio clock)
kernel: type 12 trap, code=0
Stopped at      propagate_priority+0x78:        movl    0x24(%edi),%eax
db> t
propagate_priority(c12a1000,c07e5fb8,c07e1ba0,c12a1000,c07de0a2) at propagate_priority+0x78
turnstile_wait(0,c07e1ba0,c07de0a0) at turnstile_wait+0x2a4
_mtx_lock_sleep(c07e1ba0,0,0,0) at _mtx_lock_sleep+0xbd
softclock(0) at softclock+0x210
ithread_loop(c129e500,c864cd48) at ithread_loop+0x1c1
fork_exit(c055b440,c129e500,c864cd48) at fork_exit+0x71
fork_trampoline() at fork_trampoline+0x8
--- trap 0x1, eip = 0, esp = 0xc864cd7c, ebp = 0 ---
db> reset
--->8------>8------>8------>8------>8------>8------>8------>8---

Kernel configuration:

include	GENERIC
ident	NAKAJI
nooption	INVARIANTS
nooption	INVARIANT_SUPPORT
nooption	WITNESS
nooption	WITNESS_SKIPSPIN
options		NETATALK
options		QUOTA
options		MSGBUF_SIZE=40960
device	pcm
-- 
NAKAJI Hiroyuki



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?867julgc97.fsf>