Page MenuHomeFreeBSD
Feed Advanced Search

Dec 15 2015

skra committed rS292264: Flush intermediate TLB cache when L2 page table is unlinked..
Flush intermediate TLB cache when L2 page table is unlinked.
Dec 15 2015, 1:17 PM

Nov 30 2015

skra added a comment to D4303: ARM - fix bcm2835 DMA driver (rpi-b, rpi2).
In D4303#90643, @andrew wrote:

Shouldn't we be using the brcm,dma-channel-mask property? It's missing from our dts, but should be added.

Nov 30 2015, 11:03 AM · ARM

Nov 27 2015

skra retitled D4303: ARM - fix bcm2835 DMA driver (rpi-b, rpi2) from to ARM - fix bcm2835 DMA driver (rpi-b, rpi2).
Nov 27 2015, 8:54 PM · ARM

Nov 24 2015

skra committed rS291258: Flush all kernel mappings from TLB(s) in time when they are cleared..
Flush all kernel mappings from TLB(s) in time when they are cleared.
Nov 24 2015, 1:57 PM

Nov 23 2015

skra committed rS291200: Fix inconsistent use of malloc type for cdev private data..
Fix inconsistent use of malloc type for cdev private data.
Nov 23 2015, 1:24 PM
skra committed rS291193: Revert r291142..
Revert r291142.
Nov 23 2015, 11:19 AM

Nov 21 2015

skra committed rS291142: Fix BUS_DMA_MIN_ALLOC_COMP flag logic. When bus_dmamap_t map is being.
Fix BUS_DMA_MIN_ALLOC_COMP flag logic. When bus_dmamap_t map is being
Nov 21 2015, 7:55 PM

Nov 20 2015

skra committed rS291095: Fix build when KTR is defined but not KTR_TULIP..
Fix build when KTR is defined but not KTR_TULIP.
Nov 20 2015, 9:37 AM
skra committed rS291094: Add usermode variable to KTR output. Fix style..
Add usermode variable to KTR output. Fix style.
Nov 20 2015, 9:35 AM
skra committed rS291093: Fix style and argument count for KTR..
Fix style and argument count for KTR.
Nov 20 2015, 9:33 AM

Nov 14 2015

skra added a comment to D4009: ARMv7 support for minidumps with NEW_PMAP.

Ok, I see. I'll try to change the code and use pmap_kextract to check which pages are mapped to avoid parsing of pagetables directly. However I still will need to access some of PMAP structures to prepare fake-pagetables for libkvm... Please let me know if that approach would be acceptable. I don't want to spend much time doing that and then find that everything is wrong :)

Nov 14 2015, 9:17 AM

Nov 10 2015

skra added a comment to D4114: x86/intr: introduce an isrc lock.
In D4114#86645, @royger wrote:
In D4114#86644, @onwahe-gmail-com wrote:

WRT arm intrng I'm working on, I just wonder why the one who wants to remove intr handler cannot wait until PICs are resumed?

When running on Xen all event channels are completely removed on suspend/resume, so we must clear them from the PIC. Waiting for the PIC to be resumed just adds unnecessary complexity and will leave the system in a broken state.

Nov 10 2015, 4:01 PM
skra added a comment to D4114: x86/intr: introduce an isrc lock.

WRT arm intrng I'm working on, I just wonder why the one who wants to remove intr handler cannot wait until PICs are resumed?

Nov 10 2015, 3:20 PM

Nov 3 2015

skra added a comment to D4009: ARMv7 support for minidumps with NEW_PMAP.

Ok, thanks for all comments. So... what are we going to do with this patch in general?
I assume that it might be impossible to avoid libkvm+minidump from using PTE tables directly. Yes, we can use a pmap_kextract in minidumps to check if a given page is mapped to the kernel, but we'd still need to create a "fake" pagetables to be compatible with libkvm. What do you think?

Nov 3 2015, 4:31 PM

Oct 28 2015

skra added a comment to D4009: ARMv7 support for minidumps with NEW_PMAP.
In D4009#83798, @jhb wrote:

One thing I would ask: is that you come up with a pmap-independent on-disk format. In my changes in D3341 I make the minidump parsing code machine-independent to support cross-debugging. This means that the libkvm bits in this new world order have to support all possible vmcore formats. If you can only support 1 that would be ideal.

Oct 28 2015, 10:08 AM

Oct 27 2015

skra added a comment to D4009: ARMv7 support for minidumps with NEW_PMAP.

Well, we (Michal and I) do not want to expose internal pmap things (pte definitions) to other files. Note that LPAE has another (third) variant of pte definitions.

Oct 27 2015, 2:56 PM

Oct 20 2015

skra added inline comments to D2047: New ARM interrupt framework.
Oct 20 2015, 1:20 PM
skra accepted D3869: Update armv6 busdma implementation to support unmapped/out-of-context userspace buffers.

Mapped buffers were tested on pandaboard (extern L2 cache) and rpi2 (intergrated L2 cache). Unmapped buffers were tested on rpi2 (quake3).

Oct 20 2015, 12:32 PM

Oct 17 2015

skra added inline comments to D3869: Update armv6 busdma implementation to support unmapped/out-of-context userspace buffers.
Oct 17 2015, 7:25 PM
skra added a comment to D3869: Update armv6 busdma implementation to support unmapped/out-of-context userspace buffers.

I'm going to re-test the patch (just to be sure) and then I let you know. ;) However, my testing of unmapped buffers is limited.

Oct 17 2015, 6:25 PM
skra added inline comments to D3869: Update armv6 busdma implementation to support unmapped/out-of-context userspace buffers.
Oct 17 2015, 9:49 AM

Oct 16 2015

skra added inline comments to D3869: Update armv6 busdma implementation to support unmapped/out-of-context userspace buffers.
Oct 16 2015, 7:38 PM

Oct 13 2015

skra updated the diff for D3617: ARMv6 - fix aborts for copyin/out kind of functions.

There is no need to check for __ARM_ARCH >= 6 in file dedicated for armv6 only. The check should be done in place where such file is included. It's not in the scope of this patch to fix it. However, as a side effect of this little change, this patch is build-able on not armv6 arm platforms too.

Oct 13 2015, 2:42 PM · ARM

Oct 5 2015

skra added a comment to D3617: ARMv6 - fix aborts for copyin/out kind of functions.
In D3617#78699, @onwahe-gmail-com wrote:

The unprivileged instruction encodings are described in code now. The evaluation was moved to separate function to keep abort_handler() well-arranged.

Oct 5 2015, 2:40 PM · ARM
skra added a comment to D3617: ARMv6 - fix aborts for copyin/out kind of functions.
In D3617#78154, @kib wrote:
In D3617#78032, @onwahe-gmail-com wrote:

In fact, I do not know. When the problem was pointed out, I looked at how it was solved before and make the solution same. Maybe someone who remebers the time when the copyin/out functions were created for ARM could tell us the reason.

IMO, testing user provided address for VM_MAXUSER_ADDRESS seems to me easier and more clear. Maybe, once in copyin/out function implementation, they could be made more ARMv6 like. I mean.,maybe, they could be optimised better.

After thinking about this more, I now believe that both your change, and a change to check VM_MAXUSER_ADDRESS, should be made. Your change provides working STRT/LDRT in case it appear to be needed, and it is pity to lost the work done. On the other hand, VM_MAXUSER_ADDRESS would provide a faster and easier to reason about, way to validate accesses. Also, it avoids some undesirable actions in the copyin/out path, like disabling interrupts.

If you have no time to code VM_MAXUSER_ADDRESS change, I could do it.

Oct 5 2015, 2:38 PM · ARM
skra updated the diff for D3617: ARMv6 - fix aborts for copyin/out kind of functions.

The unprivileged instruction encodings are described in code now. The evaluation was moved to separate function to keep abort_handler() well-arranged.

Oct 5 2015, 2:35 PM · ARM

Oct 2 2015

skra added a comment to D3617: ARMv6 - fix aborts for copyin/out kind of functions.
In D3617#77934, @kib wrote:

Why do we need the ldrt/strt on FreeBSD, which cause such complications ? The FreeBSD UVA/KVA layout is very simple, the user/kernel is split by VM_MAXUSER_ADDRESS. copyin/copyout should be only allowed to access a buffer which is fully located below or eq VM_MAXUSER_ADDRESS.

Other architectures check that start < start + length and start + length <= VM_MAXUSER_ADDRESS (<= is correct). Then normal ldr/str instructions can be used, and additional handling of faults is not needed.

Oct 2 2015, 3:45 PM · ARM

Sep 24 2015

skra added inline comments to D3723: RPI2 - make interrupt dispatching MP safe.
Sep 24 2015, 9:35 PM · ARM

Sep 23 2015

skra added inline comments to D3723: RPI2 - make interrupt dispatching MP safe.
Sep 23 2015, 8:13 PM · ARM
skra retitled D3723: RPI2 - make interrupt dispatching MP safe from to RPI2 - make interrupt dispatching MP safe.
Sep 23 2015, 1:14 PM · ARM
skra retitled D3722: ARM - fix IPI dispatching from to ARM - fix IPI dispatching.
Sep 23 2015, 12:57 PM · ARM

Sep 17 2015

skra added inline comments to D3617: ARMv6 - fix aborts for copyin/out kind of functions.
Sep 17 2015, 1:00 PM · ARM

Sep 10 2015

skra retitled D3617: ARMv6 - fix aborts for copyin/out kind of functions from to ARMv6 - fix aborts for copyin/out kind of functions.
Sep 10 2015, 1:11 PM · ARM

Aug 18 2015

skra added inline comments to D2048: GIC interrupt controller reworked for new ARM interrupt framework.
Aug 18 2015, 2:07 PM
skra added inline comments to D2047: New ARM interrupt framework.
Aug 18 2015, 1:30 PM

Aug 17 2015

skra added inline comments to D2047: New ARM interrupt framework.
Aug 17 2015, 10:14 PM
skra added inline comments to D2047: New ARM interrupt framework.
Aug 17 2015, 10:02 PM
skra added inline comments to D2048: GIC interrupt controller reworked for new ARM interrupt framework.
Aug 17 2015, 4:43 PM
skra added a comment to D2047: New ARM interrupt framework.

More info and ideas related to intrng can be found here -> start
The last email in this mailing thread is here -> last

Aug 17 2015, 2:42 PM

Jul 15 2015

skra added a comment to D3034: Add BUS_UNMASK_INTR method.

I guess treating PPIs are separate IRQs number will cause a huge mess. I'm starting to port fbsd on 96 core armv8 platform and the idea of 1536 vectors wasted for PPIs is outrageous.

Jul 15 2015, 11:16 AM

Jul 14 2015

skra added a comment to D3034: Add BUS_UNMASK_INTR method.

Well, I do not like to change bus interface so fast. What about to think of PPI on each core like separate interrupt with its irq number, counter, handler, and handler argument. This way bus_setup_intr will be called only once for PPI on each core. Of course, some coding is needed in nexus and/or interrupt framework.

Jul 14 2015, 3:06 PM

Apr 30 2015

skra added inline comments to D2357: Port x86 busdma to ARM64.
Apr 30 2015, 6:06 PM

Apr 23 2015

skra added a comment to D2146: Rewrite TI platforms support to use vendor DTS files.

New version tested on beaglebone and pandaboard again. It looks that everything works (except already mentioned things you want to fix later). However, I just booted to multiuser and checked over dmesgs.

Apr 23 2015, 9:58 AM

Apr 22 2015

skra added a comment to D2340: Support for Alpine platform from Annapurna Labs.

Was this tested with ARM_NEW_PMAP option?

Apr 22 2015, 2:19 PM
skra added a comment to D2146: Rewrite TI platforms support to use vendor DTS files.

This problem can be fixed by https://reviews.freebsd.org/D2345

Apr 22 2015, 2:17 PM
skra retitled D2345: gic_decode_fdt() fix for interrupts-extended property from to gic_decode_fdt() fix for interrupts-extended property.
Apr 22 2015, 2:12 PM · ARM

Apr 16 2015

skra added a comment to D2146: Rewrite TI platforms support to use vendor DTS files.

Well, here are PANDABOARD boot logs if you are interested.

  • kernel without patch
  • kernel with patch
Apr 16 2015, 2:09 PM
skra added a comment to D2146: Rewrite TI platforms support to use vendor DTS files.

Firstly, thank you for your hard work.
Can you please update you patch for current? Here are diffs which does not apply:

Apr 16 2015, 1:00 PM

Apr 10 2015

skra added a comment to D1493: Fix a panic when userland attempts to flush an invalid addres.

It's solved correctly in https://reviews.freebsd.org/D2035.

Apr 10 2015, 7:56 AM

Mar 30 2015

skra added a comment to D2146: Rewrite TI platforms support to use vendor DTS files.

I have just looked at some general interrupt parts of GPIO device to minimalize a little bit changes which would come with new interrupt framework.

Mar 30 2015, 10:51 AM

Mar 20 2015

skra added a comment to D2013: superpages, rtld, and the 1-page mmap.

Yep, I understand that. Considering difference between old and new pmap-v6, I debugged it this morning. It turned out that many section mappings were created already when I'm typing "procstat -av", but only few ones for currently running processes. Thus I think that the difference is mainly caused by not implemented pmap_copy() in old pmap. I.e. physical mappings are not copied during fork(). And most processes in procstat output are daemons.

Mar 20 2015, 11:08 AM

Mar 19 2015

skra added a comment to D2013: superpages, rtld, and the 1-page mmap.

Here is the output of "procstat -av" for current pmap-v6. The only mapping of libc marked with S flag is the one of last process - procstat itself. However, it's not marked always. When I type the command immediately after login, it's not marked.

Mar 19 2015, 4:05 PM

Mar 18 2015

skra added a comment to D2013: superpages, rtld, and the 1-page mmap.

I have tested the patch on pandaboard (armv6) for "make -j4 buildkernel".
I have got these results:
vm.pmap.section.mappings: 0 - not patched kernel
vm.pmap.section.mappings: 1517 - patched kernel

Mar 18 2015, 1:50 PM

Mar 17 2015

skra updated the diff for D2048: GIC interrupt controller reworked for new ARM interrupt framework.

Do enable IPIs on other CPUs. It's IMPLEMENTATION DEFINED if masking IPI on GIC is supported.
Some small optimalization in gic_bind().

Mar 17 2015, 5:00 PM
skra updated the diff for D2047: New ARM interrupt framework.

Update to address suggestions.

Mar 17 2015, 4:52 PM

Mar 12 2015

skra added inline comments to D2047: New ARM interrupt framework.
Mar 12 2015, 11:47 AM

Mar 11 2015

skra retitled D2048: GIC interrupt controller reworked for new ARM interrupt framework from to GIC interrupt controller reworked for new ARM interrupt framework.
Mar 11 2015, 4:12 PM
skra retitled D2047: New ARM interrupt framework from to New ARM interrupt framework.
Mar 11 2015, 3:58 PM

Feb 20 2015

skra added a comment to D1912: Fix endianness on FDT read in ARM GIC.

Well, Michal pointed me that it works in currnet. So, the true is that interrupt cells are now decoded in ofw_bus_intr_to_rl(), then again in arm_fdt_map_irq(), and then again in gic_decode_fdt(). So I was wrong. However, doing cpu_to_fdt32() three times on same data is not good too.

Feb 20 2015, 2:23 PM
skra added a comment to D1912: Fix endianness on FDT read in ARM GIC.

In fact, the opposite is correct. In present, the arguments passed to function are already in suitable format. So, all fdt32_to_cpu() calls should be removed. I remembered some debate with Michal about that that only consumer knows what kind of data come to him, so decoding should be done on his side entirely. However, in current tree, the data are decoded in ofw_bus_intr_to_rl().

Feb 20 2015, 1:12 PM
skra added a comment to D1833: Add memory barriers to buf_ring.

Hmm, IMHO, this lockless buf ring stuff should be reconsidered much more because of presented issue. It's lockless so there is no way how to get stable snapshot of buf ring variables. A race is always present. Each read value should be considered stale at any moment. Thus what is the real issue here? Is it the order of reading, i.e. prod_tail is pre-read before cons_head? It must be that because in other cases, IMHO, nothing can help. But if it's reordering issue, what else variables are involved? These two reads are very close, but nobody ensures that it could not happen in bigger distance...

Feb 20 2015, 10:23 AM